#arc159a. [arc159_a]Copy and Paste Graph

[arc159_a]Copy and Paste Graph

問題文

NNNN 列の行列 A=(ai,j)A=(a_{i,j}) が与えられます。ここで、ai,jin0,1a_{i,j} \\in \\{0,1\\} が成り立ちます。

また、以下のような有向グラフがあります。

  • 頂点数は NKNK で、各頂点には 1,2,ldots,NK1,2,\\ldots,NK と番号が付けられている。
  • 辺は AA を縦 KK 行横 KK 列に並べて得られる NKNKNKNK 列の行列 X=(xi,j)X=(x_{i,j}) によって表される(入出力例1にて A,KA, K に対応する XX が示されている)。具体的には、xi,j=1x_{i,j}=1 ならば頂点 ii から頂点 jj への有向辺が存在し、xi,j=0x_{i,j}=0 ならば存在しない。

i=1,2,ldots,Qi=1,2,\\ldots,Q に対し、次の問題に答えてください。

  • 頂点 sis_i から頂点 tit_i への経路の長さ(辺の本数)の最小値を求めよ。ただし、そのような経路が存在しない場合は代わりに -1 と出力せよ。

制約

  • 1leqNleq1001 \\leq N \\leq 100
  • 1leqKleq1091 \\leq K \\leq 10^9
  • ai,jin0,1a_{i,j} \\in \\{0,1\\}
  • 1leqQleq1001 \\leq Q \\leq 100
  • 1leqsi,tileqNK1 \\leq s_i,t_i \\leq NK
  • sineqtis_i \\neq t_i
  • 入力はすべて整数

入力

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

NN KK a1,1a_{1,1} ldots\\ldots a1,Na_{1,N} vdots\\vdots aN,1a_{N,1} ldots\\ldots aN,Na_{N,N} QQ s1s_1 t1t_1 vdots\\vdots sQs_Q tQt_Q

出力

QQ 行出力せよ。xx 行目には、i=xi=x に対する問題の答えを出力せよ。


入力例 1

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

出力例 1

1
1
1
3

この例において、辺を表す行列 XX は以下のようになります。

1 1 1 1 1 1
1 1 0 1 1 0
0 1 0 0 1 0
1 1 1 1 1 1
1 1 0 1 1 0
0 1 0 0 1 0

入力例 2

4 1000000000
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
1
1 4000000000

出力例 2

-1

辺が 11 本も存在しません。