#include<bits/stdc++.h>
#define mode(x) x%9973
using namespace std;
typedef long long ll;
ll n,k;
struct maps{
ll g[11][11];
}aa;
maps init(){
maps E;
for(ll i=0;i<n;i++){
for(ll j=0;j<n;j++){
if(i==j) E.g[i][j]=1;
else E.g[i][j]=0;
}
}
return E;
}
maps operator *(maps a,maps b){
maps c;
memset(c.g,0,sizeof(maps));
for(ll i=0;i<n;i++){
for(ll j=0;j<n;j++){
for(ll l=0;l<n;l++)
c.g[i][j]=mode(c.g[i][j]+a.g[i][l]*b.g[l][j]);
}
}
return c;
}
maps operator +(maps a,maps b){
maps c;
memset(c.g,0,sizeof(maps));
for(ll i=0;i<n;i++)
for(ll j=0;j<n;j++)
c.g[i][j]=mode(a.g[i][j]+b.g[i][j]);
return c;
}
maps operator ^(maps a,ll b){
if(b==1) return a;
maps c;
c=init();
while(b){
if(b%2) c=c*a;
a=a*a;
b=b/2;
}
return c;
}
int main()
{
int t;
scanf("%d",&t);
while(t--){
scanf("%lld%lld",&n,&k);
int i,j;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
scanf("%lld",&aa.g[i][j]);
maps ans=aa^k;
ll sum=0;
for(i=0;i<n;i++){
sum+=ans.g[i][i];
}
printf("%lld\n",mode(sum));
}
return 0;
}
11-02
11-02
07-27