#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define pb push_back
#define mp make_pair
const int N=55;
const int mod=1e9+7;
void add(int &a, int b)
{ a+=b;if(a>=mod) a-=mod;}
void sub(int &a, int b)
{ a-=b;if(a<0) a+=mod;}
void mul(int &a, int b)
{ a=(ll)a*b%mod;}
struct matrix
{
int a[N][N];
matrix()
{
for(int i=0;i<N;i++)
for(int j=0;j<N;j++)
a[i][j]=0;
}
};
matrix operator * (matrix a, matrix b)
{
matrix c;
for(int i=0;i<N;i++)
for(int j=0;j<N;j++)
for(int k=0;k<N;k++)
add(c.a[i][j],(ll)a.a[i][k]*b.a[k][j]%mod);
return c;
}
int main()
{
int n,u,v;ll k;
scanf("%i %lld",&n,&k);
matrix f=matrix();
for(int i=0;i<n;i++)
for(int j=0;j<n;j++) 
scanf("%i",&f.a[i][j]);
matrix ans=matrix();
for(int i=0;i<N;i++) ans.a[i][i]=1;
for(;k;k>>=1,f=f*f) if(k&1) ans=ans*f;
int sol=0;
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
add(sol,ans.a[i][j]);
printf("%i",sol);
return 0;
}