#include<iostream>
#include<cstdio>
#include<cstring>
const int maxn=100+10;
#define ll long long
const int b=1000000000+7;
using namespace std;
ll a[maxn][maxn],s[maxn][maxn],tmp[maxn][maxn];
int main(){
int n;ll k;
cin>>n>>k;
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++){
scanf("%lld",&a[i][j]);
s[i][j]=a[i][j];
}
k--;
while(k){
if(k%2){
memset(tmp,0,sizeof(tmp));
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
for(int k=1;k<=n;k++){
tmp[i][j]+=s[i][k]*a[k][j];
tmp[i][j]%=b;
}
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++){
s[i][j]=tmp[i][j];
}
}
memset(tmp,0,sizeof(tmp));
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
for(int k=1;k<=n;k++){
tmp[i][j]+=a[i][k]*a[k][j];
tmp[i][j]%=b;
}
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++){
a[i][j]=tmp[i][j]%b;
}
k/=2;
}
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
printf("%lld%c",s[i][j],j==n?'\n':' ');
return 0;
}