#include"stdio.h"
#include"string.h"
#define N 9973
struct node
{
int a[11][11];
}A,B;
int n,m;
void init()
{
int i,j;
memset(A.a,0,sizeof(A.a));
for(i=1;i<=n;i++)
A.a[i][i]=1;//单位矩阵
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
scanf("%d",&B.a[i][j]);
}
}
node mult(node A,node B)
{
int i,j,k;
node C;
memset(C.a,0,sizeof(C.a));
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
for(k=1;k<=n;k++)
{
C.a[i][j]+=(A.a[i][k]*B.a[k][j])%N;
C.a[i][j]%=N;
}
}
}
return C;
}
int main()
{
int i;
int T;
scanf("%d",&T);
while(T--)
{
scanf("%d%d",&n,&m);
init();
while(m)
{
if(m&1)
A=mult(B,A);
B=mult(B,B);
m/=2;
}
int ans=0;
for(i=1;i<=n;i++)
ans+=A.a[i][i];
printf("%d\n",ans%N);
}
return 0;
}