#include<iostream> #include<cstring> using namespace std; #define MAX 11 #define N 9973 typedef struct Matrix{ int adj[MAX][MAX]; }Matirx; Matirx E; void DefineE_Matrix(){ memset(E.adj,0,sizeof(E.adj)); for(int i=1;i<MAX;i++) E.adj[i][i]=1; } void init(Matrix *M,int n){ for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) cin>>M->adj[i][j]; } Matrix MulMatrix(Matrix Mar,Matrix M,int n){ int i,j,k; Matrix P; for(i=1;i<=n;i++){ for(j=1;j<=n;j++){ P.adj[i][j]=0; for(k=1;k<=n;k++) P.adj[i][j]+=Mar.adj[i][k]*M.adj[k][j]; P.adj[i][j]%=N; } } return P; } void GetMatrix(Matrix M,int n,int k){ Matrix Mar=M,Mbr=E; while(k!=1){ if(k%2) Mbr=MulMatrix(Mar,Mbr,n),k--; else Mar=MulMatrix(Mar,Mar,n),k>>=1; } Mar=MulMatrix(Mbr,Mar,n); int sum=0; for(int i=1;i<=n;i++) sum+=Mar.adj[i][i],sum%=N; cout<<sum%N<<endl; } int main(){ DefineE_Matrix(); int t,n,k; cin>>t; while(t--){ Matrix M; cin>>n>>k; init(&M,n); GetMatrix(M,n,k); } return 0; }