#include <iostream>
#include <cstdio>
#include <algorithm>
#define ii register int
using namespace std;
typedef long long ll;
ll n,k,mod=1e9+7;
struct matrix{
ll num[105][105];
}ans,a;
matrix multiple(matrix a,matrix b)
{
matrix e;
for(ii i=0;i<n;i++){
for(ii j=0;j<n;j++){
e.num[i][j]=0;
for(ii k=0;k<n;k++){
e.num[i][j]=(e.num[i][j]+a.num[i][k]*b.num[k][j])%mod;
}
}
}
return e;
}
matrix quickpow(int n,int k)
{
matrix e;
for(ii i=0;i<n;i++){
e.num[i][i]=1;
}
while(k){
if(k&1){
e=multiple(e,a);
}
k>>=1;
a=multiple(a,a);
}
return e;
}
int main()
{
ios::sync_with_stdio(0);
cin>>n>>k;
for(ii i=0;i<n;i++){
for(ii j=0;j<n;j++){
cin>>a.num[i][j];
}
}
ans=quickpow(n,k);
for(ii i=0;i<n;i++){
for(ii j=0;j<n;j++){
printf("%d%s",ans.num[i][j],j==n-1?"\n":" ");
}
}
return 0;
}
wa5个点,t五个点,有点心态爆炸(而且用快读不知道为什么全t了)