#include <bits/stdc++.h>
using namespace std;
#define int long long
const int mod = 1e9+7;
struct M {
  int n,m;
  vector<vector<int>> a;
  M(int _n,int _m) : n(_n),m(_m) {
    a.resize(n,vector<int>(m));
  }
  M operator*(const M& b) {
    auto c = M(n,b.m);
    for(int i=0;i<n;i++)
    for(int j=0;j<b.m;j++)
    for(int k=0;k<m;k++) {
      c.a[i][j] += a[i][k]*b.a[k][j];
      c.a[i][j] %= mod;
    }
    return c;
  }
};
int32_t main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0); cout.tie(0);
  int n,k;
  cin >> n >> k;
  M a(n,n);
  for(int i=0;i<n;i++) {
    for(int j=0;j<n;j++) {
      cin >> a.a[i][j];
    }
  }
  auto res = M(n,n);
  for(int i=0;i<n;i++) res.a[i][i] = 1;
  while(k) {
    if (k%2) {
      res = res * a;
    }
    a = a * a;
    k /= 2;
  }
  auto unitM = M(n,1);
  for(int i=0;i<n;i++) unitM.a[i][0] = 1;
  auto ans = res * unitM;
  int fans = 0;
  for(int i=0;i<n;i++) fans = (fans + ans.a[i][0])%mod;
  cout << fans << '\n';
  return 0;
}