P26258 [AtCoder] Copy and Paste Graph
普及-
题目描述

Problem Statement

You are given an N-by-N matrix A=(a_{i,j}), where $a_{i,j} \in$ {0,1}.
We have the following directed graph.

  • The graph has NK vertices numbered $1,2,\ldots,NK$.
  • The edges correspond to the NK-by-NK matrix X=(x_{i,j}) obtained by arranging K^2 copies of A in K rows and K columns (see Sample Input/Output 1 for an example). If x_{i,j}=1, there is a directed edge from vertex i to vertex j; if x_{i,j}=0, that edge does not exist.

Answer the following question for $i=1,2,\ldots,Q$.

  • Find the shortest length (number of edges) of a path from vertex s_i to vertex t_i. If there is no such path, print -1 instead.

Input

The input is given from Standard Input in the following format:
N K
$a_{1,1} \ldots a_{1,N}$
$\vdots$
$a_{N,1} \ldots a_{N,N}$
Q
s_1 t_1
$\vdots$
s_Q t_Q

Output

Print Q lines. The x-th line should contain the answer to the question for i=x.

Constraints

  • $1 \leq N \leq 100$
  • $1 \leq K \leq 10^9$
  • $a_{i,j} \in$ {0,1}
  • $1 \leq Q \leq 100$
  • $1 \leq s_i,t_i \leq$ NK
  • $s_i \neq t_i$
  • All values in the input are integers.

Sample Input 1

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

Sample Output 1

1
1
1
3

Below is the matrix X representing the edges.
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

Sample Input 2

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

Sample Output 2

-1

There is no edge.

输入格式

见题面 Input 部分

输出格式

见题面 Output 部分

样例输入
3 2 1 1 1 1 1 0 0 1 0 4 1 2 1 4 1 6 6 3
样例输出
1 1 1 3