#include<iostream>
#include<algorithm>
#include<cstring>
#include<cstdio>
using namespace std;
int h[40010],ne[40010],to[40010];
int n,u,l,match[210],g[210][210];
bool st[210];
void add(int a,int b)
{
u++;
to[u]=b;
ne[u]=h[a];
h[a]=u;
}
int dfs(int x)
{
for(int i=h[x];i;i=ne[i])
{
int t=to[i];
if(!st[t])
{
st[t]=1;
if(!match[t]||dfs(match[t]))
{
match[t]=x;
return 1;
}
}
}
return 0;
}
int main()
{
cin>>l;
while(l--)
{
cin>>n;
u=0;
for(int i=1;i<=40010;i++)
{
h[i]=ne[i]=to[i]=0;
}
for(int i=1;i<=210;i++)
{
st[i]=match[i]=0;
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
cin>>g[i][j];
}
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
if(g[j][i]==1) add(i,j);
}
}
int flag=1;
for(int i=1;i<=n;i++)
{
memset(st,false,sizeof st);
if(!dfs(i))
{
flag=0;
break;
}
}
if(flag) puts("Yes");
else puts("No");
}
return 0;
}