#include<stdio.h>
#include<stdlib.h>
typedef struct Matrix
{
int m[11][11];
int n;
}Matrix;
Matrix multiply(Matrix a,Matrix b)
{
int i,j,k;
Matrix c;
c.n=a.n;
for(i=1;i<=a.n;i++)
for(j=1;j<=b.n;j++)
{
c.m[i][j]=0;
for(k=1;k<=a.n;k++)
c.m[i][j]+=a.m[i][k]*b.m[k][j];
}
return c;
}
int main()
{
int total;
while(scanf("%d",&total)!=EOF)
{
while(total--)
{
int n,k;
scanf("%d%d",&n,&k);
int flag=0;
Matrix matrix,matrixa;
matrix.n=n;
int i,j;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
scanf("%d",&matrix.m[i][j]);
matrixa=matrix;
if(k&1&&k!=1) flag=1;
while(k!=1)
{
matrix=multiply(matrix,matrix);
k/=2;
}
if(flag)
matrix=multiply(matrix,matrixa);
for(i=1;i<=matrix.n;i++)
{
for(j=1;j<=matrix.n;j++)
{
printf("%d",matrix.m[i][j]);
if(j!=matrix.n)
printf(" ");
}
printf("\n");
}
}
}
return 0;
}