#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define INF 2147483646
#define inf 9223372036854775806
#define pl putchar('\n');
#define mod 1000000007
struct squa{
long long n;
long long a[100][100];
squa operator* (const squa &b){
squa c;
c.n=n;
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
for(int r=0;r<n;r++){
c.a[i][j]+=a[i][r]*b.a[r][j];
c.a[i][j]%=mod;
}
}
}
return c;
}
void operator= (const squa &b){
this->n=b.n;
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
this->a[i][j]=b.a[i][j];
}
}
return;
}
}a,b,ans;
squa qpow(squa A,long long k){
if(k==0){
return b;
}
if(k==1){
return A;
}
if(k&1){
return A*qpow(A,k/2)*qpow(A,k/2);
}
else{
return qpow(A,k/2)*qpow(A,k/2);
}
}
int main(){
long long k,n;
cin>>n>>k;
a.n=n;
b.n=n;
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
cin>>a.a[i][j];
if(i==j){
b.a[i][j]=1;
}
else{
b.a[i][j]=0;
}
}
}
ans=qpow(a,k);
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
cout<<ans.a[i][j]<<" ";
}
cout<<endl;
}
return 0;
}