#include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std; typedef __int64 int64; const int N = 10; const int MOD = 9973; int k,n; int arr[N],f[N]; struct Matrix{ int mat[N][N]; Matrix operator*(const Matrix &m)const{ Matrix tmp; for(int i = 0; i < N; i++) { for(int j = 0; j < N; j++) { tmp.mat[i][j] = 0; for(int k = 0; k < N; k++) { tmp.mat[i][j] += mat[i][k]*m.mat[k][j]%MOD; tmp.mat[i][j] %= MOD; } } } return tmp; } }; int64 Pow(Matrix &m,int k) { Matrix ans; memset(ans.mat,0,sizeof(ans.mat)); for(int i = 0; i < N; i++) ans.mat[i][i] = 1; while(k) { if(k&1) ans = ans*m; k >>= 1; m = m*m; } int64 sum = 0; for(int i = 0; i < n; i++) { sum += ans.mat[i][i]%MOD; sum %= MOD; } return sum; } void Init(Matrix &m) { memset(m.mat,0,sizeof(m.mat)); for(int i = 0; i < n; i++) for(int j = 0; j < n; j++) scanf("%d",&m.mat[i][j]),m.mat[i][j]%=MOD; } int main() { Matrix m; int t; cin>>t; while(t--) { scanf("%d%d",&n,&k); Init(m); printf("%I64d ",Pow(m,k)); } return 0; }