{
TASK:seq
LANG:Pascal
}
program seq;
var
  ans:string;
  n,m,i,j:longint;
  mas:array[1..100000] of longint;
function ok:boolean;
var
  check:boolean;
  i,j,a,b:longint;
  one,two:array[0..100000] of longint;
begin
 a:=0;
 b:=0;
 one[a]:=-1;
 two[b]:=-2;
 check:=true;
 for i:=1 to m do
 begin
  if (mas[i]<=one[a]) and (mas[i]<=two[b]) then
  begin
   check:=false;
   break;
  end;
  if (mas[i]>one[a]) and (mas[i]<=two[b]) then
  begin
   a:=a+1;
   one[a]:=mas[i];
   continue;
  end;
  if (mas[i]>two[b]) and (mas[i]<=one[a]) then
  begin
   b:=b+1;
   two[b]:=mas[i];
   continue;
  end;
  if (mas[i]>one[a]) and (mas[i]>two[b]) then
  begin
   if one[a]>two[b] then
   begin
    a:=a+1;
    one[a]:=mas[i];
   end
    else
   begin
    b:=b+1;
    two[b]:=mas[i];
   end;
  end;
 end;
 ok:=check;
{ for i:=1 to a do
  write(one[i],' ');
 writeln;
 for i:=1 to b do
  write(two[i],' ');
 writeln;}
end;
begin
   ans:='';
   readln(n);
   for i:=1 to n do
   begin
    read(m);
    for j:=1 to m do
     read(mas[j]);
    if ok=true then
     ans:=ans+'1'
      else
     ans:=ans+'0';
   end;
   writeln(ans);
   readln
end.