#include<bits/stdc++.h>
#define N 53
using namespace std;
int vt[N],pre[N];
int T,n,ttt;
vector<int>g[N];
bool hung(int cur)
{
if(vt[cur]==ttt)
return 0;
vt[cur]=ttt;
for(int i=0; i<g[cur].size(); i++)
{
int v=g[cur][i];
if(!pre[v]||hung(pre[v]))
{
pre[v]=cur;
return 1;
}
}
return 0;
}
int sch[N],hom[N],sum;
void build()
{
int i,j,tmp=0,f;
sum=0;
scanf("%d",&n);
for(i=1; i<=n; i++)
scanf("%d",sch+i);
for(i=1; i<=n; i++)
{
scanf("%d",hom+i);
if(sch[i]&&!hom[i])
g[i].push_back(i);
}
for(i=1; i<=n; i++)
if(!sch[i]||(sch[i]&&!hom[i]))
++sum;
for(i=1; i<=n; i++)
for(j=1; j<=n; j++)
{
scanf("%d",&f);
if(f&&sch[j])g[i].push_back(j);
}
}
int main()
{
int i;
scanf("%d",&T);
while(T--)
{
int cnt=0;
for(i=1; i<=N-1; i++)
g[i].clear();
memset(vt,0,sizeof(vt));
memset(pre,0,sizeof(pre));
memset(hom,0,sizeof(hom));
memset(sch,0,sizeof(sch));
build();
ttt=0;
for(i=1; i<=n; i++,ttt++)
if(!sch[i]||(sch[i]&&!hom[i]))
cnt+=hung(i);
if(cnt>=sum)
printf("^_^");
else printf("T_T");
printf("\n");
}
}