atcoder#DPR. Walk

Walk

配点 : 100100

問題文

NN 頂点の単純有向グラフ GG があります。 頂点には 1,2,,N1, 2, \ldots, N と番号が振られています。

i,ji, j (1i,jN1 \leq i, j \leq N) について、頂点 ii から jj への有向辺の有無が整数 ai,ja_{i, j} によって与えられます。 ai,j=1a_{i, j} = 1 ならば頂点 ii から jj への有向辺が存在し、ai,j=0a_{i, j} = 0 ならば存在しません。

GG の長さ KK の有向パスは何通りでしょうか? 109+710^9 + 7 で割った余りを求めてください。 ただし、同じ辺を複数回通るような有向パスも数えるものとします。

制約

  • 入力はすべて整数である。
  • 1N501 \leq N \leq 50
  • 1K10181 \leq K \leq 10^{18}
  • ai,ja_{i, j}00 または 11 である。
  • ai,i=0a_{i, i} = 0

入力

入力は以下の形式で標準入力から与えられる。

NN KK

a1,1a_{1, 1} \ldots a1,Na_{1, N}

::

aN,1a_{N, 1} \ldots aN,Na_{N, N}

出力

GG の長さ KK の有向パスは何通りか? 109+710^9 + 7 で割った余りを出力せよ。

4 2
0 1 0 0
0 0 1 1
0 0 0 1
1 0 0 0
6

GG は次図です。

長さ 22 の有向パスは、次の 66 通りです。

  • 112233
  • 112244
  • 223344
  • 224411
  • 334411
  • 441122
3 3
0 1 0
1 0 1
0 0 0
3

GG は次図です。

長さ 33 の有向パスは、次の 33 通りです。

  • 11221122
  • 22112211
  • 22112233
6 2
0 0 0 0 0 0
0 0 1 0 0 0
0 0 0 0 0 0
0 0 0 0 1 0
0 0 0 0 0 1
0 0 0 0 0 0
1

GG は次図です。

長さ 22 の有向パスは、次の 11 通りです。

  • 445566
1 1
0
0
10 1000000000000000000
0 0 1 1 0 0 0 1 1 0
0 0 0 0 0 1 1 1 0 0
0 1 0 0 0 1 0 1 0 1
1 1 1 0 1 1 0 1 1 0
0 1 1 1 0 1 0 1 1 1
0 0 0 1 0 0 1 0 1 0
0 0 0 1 1 0 0 1 0 1
1 0 0 0 1 0 1 0 0 0
0 0 0 0 0 1 0 0 0 0
1 0 1 1 1 0 1 1 1 0
957538352

答えを 109+710^9 + 7 で割った余りを出力することを忘れずに。