#include <bits/stdc++.h>
using namespace std;
int val[20][20];
bitset<(1<<20)> seen;
long long memo[1<<20];
int n;
long long calc(int mask,int i)
{
if(mask==((1<<n)-1))
return 1;
if(seen.test(mask))
return memo[mask];
long long ret = 0;
for(int j=0;j<n;++j)
{
if(val[i][j]==1 && !(mask&(1<<j)))
ret += calc(mask|(1<<j),i+1);
}
seen.set(mask);
return (memo[mask]=ret);
}
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
seen.reset();
scanf("%d",&n);
for(int i=0;i<n;++i)
for(int j=0;j<n;++j)
scanf("%d",&val[i][j]);
long long ans = 0;
for(int i=0;i<n;++i)
if(val[0][i]==1)
ans += calc(1<<i,1);
printf("%lld\n",ans);
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgdmFsWzIwXVsyMF07CmJpdHNldDwoMTw8MjApPiBzZWVuOwpsb25nIGxvbmcgbWVtb1sxPDwyMF07CmludCBuOwoKbG9uZyBsb25nIGNhbGMoaW50IG1hc2ssaW50IGkpCnsKCWlmKG1hc2s9PSgoMTw8biktMSkpCgkJcmV0dXJuIDE7CglpZihzZWVuLnRlc3QobWFzaykpCgkJcmV0dXJuIG1lbW9bbWFza107Cglsb25nIGxvbmcgcmV0ID0gMDsKCWZvcihpbnQgaj0wO2o8bjsrK2opCgl7CgkJaWYodmFsW2ldW2pdPT0xICYmICEobWFzayYoMTw8aikpKQoJCQlyZXQgKz0gY2FsYyhtYXNrfCgxPDxqKSxpKzEpOwoJfQoJc2Vlbi5zZXQobWFzayk7CglyZXR1cm4gKG1lbW9bbWFza109cmV0KTsKfQoKaW50IG1haW4oKQp7CglpbnQgdDsKCXNjYW5mKCIlZCIsJnQpOwoJd2hpbGUodC0tKQoJewoJCXNlZW4ucmVzZXQoKTsKCQlzY2FuZigiJWQiLCZuKTsKCQlmb3IoaW50IGk9MDtpPG47KytpKQoJCQlmb3IoaW50IGo9MDtqPG47KytqKQoJCQkJc2NhbmYoIiVkIiwmdmFsW2ldW2pdKTsKCQlsb25nIGxvbmcgYW5zID0gMDsKCQlmb3IoaW50IGk9MDtpPG47KytpKQoJCQlpZih2YWxbMF1baV09PTEpCgkJCQlhbnMgKz0gY2FsYygxPDxpLDEpOwoJCXByaW50ZigiJWxsZFxuIixhbnMpOwoJfQoJcmV0dXJuIDA7Cn0K
MwozCjEgMSAxCjEgMSAxCjEgMSAxCjExCjEgMCAwIDEgMCAwIDAgMCAwIDEgMSAKMSAxIDEgMSAxIDAgMSAwIDEgMCAwIAoxIDAgMCAxIDAgMCAxIDEgMCAxIDAgCjEgMCAxIDEgMSAwIDEgMSAwIDEgMSAKMCAxIDEgMSAwIDEgMCAwIDEgMSAxIAoxIDEgMSAwIDAgMSAwIDAgMCAwIDAgCjAgMCAwIDAgMSAwIDEgMCAwIDAgMSAKMSAwIDEgMSAwIDAgMCAwIDAgMCAxIAowIDAgMSAwIDEgMSAwIDAgMCAxIDEgCjEgMSAxIDAgMCAwIDEgMCAxIDAgMSAKMSAwIDAgMCAxIDEgMSAxIDAgMCAwIAoxMQowIDEgMSAxIDAgMSAwIDAgMCAxIDAgCjAgMCAxIDEgMSAxIDEgMSAxIDEgMSAKMSAxIDAgMSAwIDAgMCAwIDAgMSAwIAowIDEgMCAxIDAgMSAwIDEgMCAxIDEgCjEgMCAwIDEgMCAwIDAgMCAxIDAgMSAKMCAwIDEgMCAxIDEgMCAwIDAgMCAxIAoxIDAgMSAwIDEgMSAxIDAgMSAxIDAgCjEgMCAxIDEgMCAxIDEgMCAwIDEgMCAKMCAwIDEgMSAwIDEgMSAxIDEgMSAxIAowIDEgMCAwIDAgMCAwIDAgMCAxIDEgCjAgMSAxIDAgMCAwIDAgMCAxIDAgMSBzZWVu
3
3
1 1 1
1 1 1
1 1 1
11
1 0 0 1 0 0 0 0 0 1 1
1 1 1 1 1 0 1 0 1 0 0
1 0 0 1 0 0 1 1 0 1 0
1 0 1 1 1 0 1 1 0 1 1
0 1 1 1 0 1 0 0 1 1 1
1 1 1 0 0 1 0 0 0 0 0
0 0 0 0 1 0 1 0 0 0 1
1 0 1 1 0 0 0 0 0 0 1
0 0 1 0 1 1 0 0 0 1 1
1 1 1 0 0 0 1 0 1 0 1
1 0 0 0 1 1 1 1 0 0 0
11
0 1 1 1 0 1 0 0 0 1 0
0 0 1 1 1 1 1 1 1 1 1
1 1 0 1 0 0 0 0 0 1 0
0 1 0 1 0 1 0 1 0 1 1
1 0 0 1 0 0 0 0 1 0 1
0 0 1 0 1 1 0 0 0 0 1
1 0 1 0 1 1 1 0 1 1 0
1 0 1 1 0 1 1 0 0 1 0
0 0 1 1 0 1 1 1 1 1 1
0 1 0 0 0 0 0 0 0 1 1
0 1 1 0 0 0 0 0 1 0 1 seen