using System;
using System.Linq;
using System.Collections.Generic;

namespace AtCoder.DP
{
    class EDPC_R
    {
        public const int mod = 1000000007;

        public class Matrix
        {
            public readonly long[,] Value;

            public long this[int row, int col]
            {
                get { return Value[row, col]; }
                set { Value[row, col] = value; }
            }

            public readonly int Row;

            public readonly int Col;

            public Matrix(int row, int col)
            {
                Row = row;
                Col = col;
                Value = new long[row, col];
            }

            public Matrix(int n) : this(n, n) { }

            public void SetRow(int row, long[] value)
            {
                for (int i = 0; i < value.Length; i++)
                    Value[row, i] = value[i];
            }

            public Matrix Transpose()
            {
                var transposed = new Matrix(Col, Row);
                for (int y = 0; y < Row; y++)
                    for (int x = 0; x < Col; x++)
                        transposed[x, y] = Value[y, x];
                return transposed;
            }

            public static Matrix operator * (Matrix a, Matrix b)
            {
                var t = b.Transpose();
                var r = new Matrix(a.Row, a.Col);
                for (int y = 0; y < a.Row; y++)
                    for (int x = 0; x < a.Col; x++)
                        for (int i = 0; i < a.Col; i++)
                            r[y, x] += a[y, i] * t[x, i];
                return r;
            }

            public static Matrix Unit(int n)
            {
                var unit = new Matrix(n);
                for (int i = 0; i < n; i++)
                    unit[i, i] = 1;
                return unit;
            }

            public Matrix PowerMod(long k, long mod)
            {
                if (k == 1)
                    return this;

                var temp = PowerMod(k / 2, mod);
                var tr = temp.Transpose();

                Matrix ret = new Matrix(Row, Col);
                for (int y = 0; y < Row; y++)
                {
                    for (int x = 0; x < Col; x++)
                    {
                        for (int i = 0; i < Col; i++)
                            ret[y, x] += temp[y, i] * tr[x, i] % mod;
                        ret[y, x] %= mod;
                    }
                }

                if (k % 2 == 1)
                {
                    temp = ret;
                    tr = Transpose();
                    ret = new Matrix(Row, Col);
                    for (int y = 0; y < Row; y++)
                    {
                        for (int x = 0; x < Col; x++)
                        {
                            for (int i = 0; i < Col; i++)
                                ret[y, x] += temp[y, i] * tr[x, i] % mod;
                            ret[y, x] %= mod;
                        }
                    }
                }

                return ret;
            }
        }


        public static void Main()
        {
            var nk = Console.ReadLine().Split(' ').Select(x => long.Parse(x)).ToArray();
            var n = (int)nk[0];
            var k = nk[1];

            var matrix = new Matrix(n, n);
            for (int i = 0; i < n; i++)
                matrix.SetRow(i, Console.ReadLine().Split(' ').Select(x => long.Parse(x)).ToArray());


            matrix = matrix.PowerMod(k, mod);

            long sum = 0;
            for (int y = 0; y < matrix.Row; y++)
                for (int x = 0; x < matrix.Col; x++)
                    sum += matrix[y, x];
            Console.WriteLine(sum % mod);
        }
    }
}


Measured memory_bytes: 15840