//teja349
#include <bits/stdc++.h>
#include <vector>
#include <set>
#include <map>
#include <string>
#include <cstdio>
#include <cstdlib>
#include <climits>
#include <utility>
#include <algorithm>
#include <cmath>
#include <queue>
#include <stack>
#include <iomanip>
//setbase - cout << setbase (16); cout << 100 << endl; Prints 64
//setfill - cout << setfill ('x') << setw (5); cout << 77 << endl; prints xxx77
//setprecision - cout << setprecision (14) << f << endl; Prints x.xxxx
//cout.precision(x) cout<<fixed<<val; // prints x digits after decimal in val
using namespace std;
#define f(i,a,b) for(i=a;i<b;i++)
#define rep(i,n) f(i,0,n)
#define fd(i,a,b) for(i=a;i>=b;i--)
#define pb push_back
#define mp make_pair
#define vi vector< int >
#define vl vector< ll >
#define ss second
#define ff first
#define ll long long
#define pii pair< int,int >
#define pll pair< ll,ll >
#define sz(a) a.size()
#define inf (1000*1000*1000+5)
#define all(a) a.begin(),a.end()
#define tri pair<int,pii>
#define vii vector<pii>
#define vll vector<pll>
#define viii vector<tri>
#define mod (1000*1000*1000+7)
#define pqueue priority_queue< int >
#define pdqueue priority_queue< int,vi ,greater< int > >
const int MaxN = (int)1e5 + 10;
const int MOD = (int)1e9 + 7;
const int INF = 1e9;
long long readInt(long long l,long long r,char endd){
long long x=0;
int cnt=0;
int fi=-1;
bool is_neg=false;
while(true){
char g=getchar();
if(g=='-'){
assert(fi==-1);
is_neg=true;
continue;
}
if('0'<=g && g<='9'){
x*=10;
x+=g-'0';
if(cnt==0){
fi=g-'0';
}
cnt++;
assert(fi!=0 || cnt==1);
assert(fi!=0 || is_neg==false);
assert(!(cnt>19 || ( cnt==19 && fi>1) ));
} else if(g==endd){
if(is_neg){
x= -x;
}
assert(l<=x && x<=r);
return x;
} else {
assert(false);
}
}
}
string readString(int l,int r,char endd){
string ret="";
int cnt=0;
while(true){
char g=getchar();
assert(g!=-1);
if(g==endd){
break;
}
cnt++;
ret+=g;
}
assert(l<=cnt && cnt<=r);
return ret;
}
long long readIntSp(long long l,long long r){
return readInt(l,r,' ');
}
long long readIntLn(long long l,long long r){
return readInt(l,r,'\n');
}
string readStringLn(int l,int r){
return readString(l,r,'\n');
}
string readStringSp(int l,int r){
return readString(l,r,' ');
}
// int main() {
// // freopen("input.txt", "r", stdin);
// // ios::sync_with_stdio(false); cin.tie(NULL);
// int t = readIntLn(1, 100);
// while (t --> 0) {
// int n = readIntLn(1, 1e5);
// }
// assert (getchar() == EOF);
// return 0;
// }
//std::ios::sync_with_stdio(false);
int row[1234],col[1234];
int main(){
std::ios::sync_with_stdio(false);
int t=readIntLn(1,10000);
int sum2=0;
while(t--){
int n=readIntLn(2,500);
sum2+=n*n;
int i,j;
int val;
rep(i,n){
row[i]=0;
col[i]=0;
}
rep(i,n){
rep(j,n){
if(j!=n-1){
val=readIntSp(0,1e3);
}
else{
val=readIntLn(0,1e3);
}
if(val==0){
row[i]=1;
col[j]=1;
}
}
}
rep(i,n){
if(!row[i] || !col[i]){
cout<<"NO"<<endl;
break;
}
}
if(i==n){
cout<<"YES"<<endl;
}
}
assert(sum2<=2e6);
assert (getchar() == EOF);
return 0;
}
Ly90ZWphMzQ5CiNpbmNsdWRlIDxiaXRzL3N0ZGMrKy5oPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8c2V0PgojaW5jbHVkZSA8bWFwPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8Y3N0ZGlvPgojaW5jbHVkZSA8Y3N0ZGxpYj4KI2luY2x1ZGUgPGNsaW1pdHM+CiNpbmNsdWRlIDx1dGlsaXR5PgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZSA8Y21hdGg+CiNpbmNsdWRlIDxxdWV1ZT4KI2luY2x1ZGUgPHN0YWNrPgojaW5jbHVkZSA8aW9tYW5pcD4gCi8vc2V0YmFzZSAtIGNvdXQgPDwgc2V0YmFzZSAoMTYpOyBjb3V0IDw8IDEwMCA8PCBlbmRsOyBQcmludHMgNjQKLy9zZXRmaWxsIC0gICBjb3V0IDw8IHNldGZpbGwgKCd4JykgPDwgc2V0dyAoNSk7IGNvdXQgPDwgNzcgPDwgZW5kbDsgcHJpbnRzIHh4eDc3Ci8vc2V0cHJlY2lzaW9uIC0gY291dCA8PCBzZXRwcmVjaXNpb24gKDE0KSA8PCBmIDw8IGVuZGw7IFByaW50cyB4Lnh4eHgKLy9jb3V0LnByZWNpc2lvbih4KSAgY291dDw8Zml4ZWQ8PHZhbDsgIC8vIHByaW50cyB4IGRpZ2l0cyBhZnRlciBkZWNpbWFsIGluIHZhbAoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKI2RlZmluZSBmKGksYSxiKSBmb3IoaT1hO2k8YjtpKyspCiNkZWZpbmUgcmVwKGksbikgZihpLDAsbikKI2RlZmluZSBmZChpLGEsYikgZm9yKGk9YTtpPj1iO2ktLSkKI2RlZmluZSBwYiBwdXNoX2JhY2sKI2RlZmluZSBtcCBtYWtlX3BhaXIKI2RlZmluZSB2aSB2ZWN0b3I8IGludCA+CiNkZWZpbmUgdmwgdmVjdG9yPCBsbCA+CiNkZWZpbmUgc3Mgc2Vjb25kCiNkZWZpbmUgZmYgZmlyc3QKI2RlZmluZSBsbCBsb25nIGxvbmcKI2RlZmluZSBwaWkgcGFpcjwgaW50LGludCA+CiNkZWZpbmUgcGxsIHBhaXI8IGxsLGxsID4KI2RlZmluZSBzeihhKSBhLnNpemUoKQojZGVmaW5lIGluZiAoMTAwMCoxMDAwKjEwMDArNSkKI2RlZmluZSBhbGwoYSkgYS5iZWdpbigpLGEuZW5kKCkKI2RlZmluZSB0cmkgcGFpcjxpbnQscGlpPgojZGVmaW5lIHZpaSB2ZWN0b3I8cGlpPgojZGVmaW5lIHZsbCB2ZWN0b3I8cGxsPgojZGVmaW5lIHZpaWkgdmVjdG9yPHRyaT4KI2RlZmluZSBtb2QgKDEwMDAqMTAwMCoxMDAwKzcpCiNkZWZpbmUgcHF1ZXVlIHByaW9yaXR5X3F1ZXVlPCBpbnQgPgojZGVmaW5lIHBkcXVldWUgcHJpb3JpdHlfcXVldWU8IGludCx2aSAsZ3JlYXRlcjwgaW50ID4gPgoKY29uc3QgaW50IE1heE4gPSAoaW50KTFlNSArIDEwOwpjb25zdCBpbnQgTU9EID0gKGludCkxZTkgKyA3Owpjb25zdCBpbnQgSU5GID0gMWU5OwogCmxvbmcgbG9uZyByZWFkSW50KGxvbmcgbG9uZyBsLGxvbmcgbG9uZyByLGNoYXIgZW5kZCl7Cglsb25nIGxvbmcgeD0wOwoJaW50IGNudD0wOwoJaW50IGZpPS0xOwoJYm9vbCBpc19uZWc9ZmFsc2U7Cgl3aGlsZSh0cnVlKXsKCQljaGFyIGc9Z2V0Y2hhcigpOwoJCWlmKGc9PSctJyl7CgkJCWFzc2VydChmaT09LTEpOwoJCQlpc19uZWc9dHJ1ZTsKCQkJY29udGludWU7CgkJfQoJCWlmKCcwJzw9ZyAmJiBnPD0nOScpewoJCQl4Kj0xMDsKCQkJeCs9Zy0nMCc7CgkJCWlmKGNudD09MCl7CgkJCQlmaT1nLScwJzsKCQkJfQoJCQljbnQrKzsKCQkJYXNzZXJ0KGZpIT0wIHx8IGNudD09MSk7CgkJCWFzc2VydChmaSE9MCB8fCBpc19uZWc9PWZhbHNlKTsKIAoJCQlhc3NlcnQoIShjbnQ+MTkgfHwgKCBjbnQ9PTE5ICYmIGZpPjEpICkpOwoJCX0gZWxzZSBpZihnPT1lbmRkKXsKCQkJaWYoaXNfbmVnKXsKCQkJCXg9IC14OwoJCQl9CgkJCWFzc2VydChsPD14ICYmIHg8PXIpOwoJCQlyZXR1cm4geDsKCQl9IGVsc2UgewoJCQlhc3NlcnQoZmFsc2UpOwoJCX0KCX0KfQpzdHJpbmcgcmVhZFN0cmluZyhpbnQgbCxpbnQgcixjaGFyIGVuZGQpewoJc3RyaW5nIHJldD0iIjsKCWludCBjbnQ9MDsKCXdoaWxlKHRydWUpewoJCWNoYXIgZz1nZXRjaGFyKCk7CgkJYXNzZXJ0KGchPS0xKTsKCQlpZihnPT1lbmRkKXsKCQkJYnJlYWs7CgkJfQoJCWNudCsrOwoJCXJldCs9ZzsKCX0KCWFzc2VydChsPD1jbnQgJiYgY250PD1yKTsKCXJldHVybiByZXQ7Cn0KbG9uZyBsb25nIHJlYWRJbnRTcChsb25nIGxvbmcgbCxsb25nIGxvbmcgcil7CglyZXR1cm4gcmVhZEludChsLHIsJyAnKTsKfQpsb25nIGxvbmcgcmVhZEludExuKGxvbmcgbG9uZyBsLGxvbmcgbG9uZyByKXsKCXJldHVybiByZWFkSW50KGwsciwnXG4nKTsKfQpzdHJpbmcgcmVhZFN0cmluZ0xuKGludCBsLGludCByKXsKCXJldHVybiByZWFkU3RyaW5nKGwsciwnXG4nKTsKfQpzdHJpbmcgcmVhZFN0cmluZ1NwKGludCBsLGludCByKXsKCXJldHVybiByZWFkU3RyaW5nKGwsciwnICcpOwp9CiAKLy8gaW50IG1haW4oKSB7Ci8vIC8vCWZyZW9wZW4oImlucHV0LnR4dCIsICJyIiwgc3RkaW4pOwovLyAvLwlpb3M6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7IGNpbi50aWUoTlVMTCk7Ci8vIAlpbnQgdCA9IHJlYWRJbnRMbigxLCAxMDApOwovLyAJd2hpbGUgKHQgLS0+IDApIHsKLy8gCQlpbnQgbiA9IHJlYWRJbnRMbigxLCAxZTUpOwovLyAJfQovLyAJYXNzZXJ0IChnZXRjaGFyKCkgPT0gRU9GKTsKLy8gCXJldHVybiAwOwovLyB9ICAgICAKCi8vc3RkOjppb3M6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7ICAgCgppbnQgcm93WzEyMzRdLGNvbFsxMjM0XTsKaW50IG1haW4oKXsKICAgIHN0ZDo6aW9zOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwogICAgaW50IHQ9cmVhZEludExuKDEsMTAwMDApOwogICAgaW50IHN1bTI9MDsKICAgIHdoaWxlKHQtLSl7CiAgICAJaW50IG49cmVhZEludExuKDIsNTAwKTsKICAgIAlzdW0yKz1uKm47CiAgICAJaW50IGksajsKICAgIAlpbnQgdmFsOwogICAgCXJlcChpLG4pewogICAgCQlyb3dbaV09MDsKICAgIAkJY29sW2ldPTA7CiAgICAJfQogICAgCXJlcChpLG4pewogICAgCQlyZXAoaixuKXsKICAgIAkJCWlmKGohPW4tMSl7CiAgICAJCQkJdmFsPXJlYWRJbnRTcCgwLDFlMyk7CiAgICAJCQl9CiAgICAJCQllbHNlewogICAgCQkJCXZhbD1yZWFkSW50TG4oMCwxZTMpOwogICAgCQkJfQogICAgCQkJaWYodmFsPT0wKXsKICAgIAkJCQlyb3dbaV09MTsKICAgIAkJCQljb2xbal09MTsKICAgIAkJCX0KICAgIAkJfQogICAgCX0KICAgIAlyZXAoaSxuKXsKICAgIAkJaWYoIXJvd1tpXSB8fCAhY29sW2ldKXsKICAgIAkJCWNvdXQ8PCJOTyI8PGVuZGw7CiAgICAJCQlicmVhazsKICAgIAkJfQogICAgCX0KICAgIAlpZihpPT1uKXsKICAgIAkJY291dDw8IllFUyI8PGVuZGw7CiAgICAJfQogICAgfQogICAgYXNzZXJ0KHN1bTI8PTJlNik7CiAgICBhc3NlcnQgKGdldGNoYXIoKSA9PSBFT0YpOwogICAgcmV0dXJuIDA7ICAgICAKfQ==