/*
TASK:seq
LANG:C++
*/
#include<iostream>
#include<string>
#include<stack>
using namespace std;

bool vis[11][100000];
int a[11][100000],num[11];
int main()
{
    int n,m,i,j;
    stack <int> t;
    //stack <int> in;
    string ans;
    cin>>n;
    for(i=0;i<n;i++)
    {
     cin>>m;
     num[i]=m;
     for(j=0;j<m;j++)
     {
      cin>>a[i][j];
     }
    }
    for(i=0;i<n;i++)
    {
      m=num[i];
      t.push(a[i][0]);
      vis[i][0]=1;
      //in.push(0);
      bool noans,q=false;
      //while(!t.empty())
      //{ 
       noans=true;
       for(j=1;j<m;j++)
       {
        if(a[i][j]>t.top())
        {
         t.push(a[i][j]);
         vis[i][j]=true;
         //in.push(j);
         //noans=false;
        }
       }
       //if(noans&&q)
       //{
       // ans+='0';
       // break;
       //}
       int last=-1;
       bool p=true;
       for(j=1;j<m;j++)
       {
        if(vis[i][j]==false)
        {
        //cout<<last<<"q"<<a[i][j]<<" ";
         if(last==-1)
         {
          last=a[i][j];
         }
         else
           if(last>a[i][j])
           {
            p=false;
            break;
           }
         last=a[i][j];
         //cout<<"        "<<j<<" ";
        }
       }
       //cout<<endl;
       if(p)
       {
        ans+='1';
        //break;
       }
       else
       {
           //t.pop();
           //in.pop();
           ans+='0';
       }
       q=true;
      //}
    }
    cout<<ans<<endl;
    return 0;
}
