元-神
题号:NC260745
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

元神,启动!

作为元-神,你可以解决所有和元素相关的问题。

这天你看到了一道元素题...

特瓦提大陆有 n 种元素,任意两个元素间都有一个克制关系。

对于元素序列 A=\{a_1,\cdots,a_m\},定义 F(t,A) 按如下方式迭代 t 次得到的序列:

在每次迭代中,从前往后遍历元素序列 A 中的 a_i (其中 i=1,\cdots,m-1):
1.若 C_{a_{i+1},a_i} =1 则 a_i = a_{i+1}
2.若 C_{a_i,a_{i+1}} =1 则  a_i 不变。

现在给定 nT,代表有 n 种元素,T 组待求元素列。

接下来给定 n\times n 的 01 矩阵 C,代表着元素之间的克制关系,其中 C_{ij} = 1表示i能克制j(对于i \neq j的情况,数据保证 C_{ij} = 1 和 C_{ji} = 1 两者有且只会有一个成立)。

接下来 T 组数据,每组数据第一行给定 m,代表序列 A 长度。

第二行给定 m 个数 , 表示元素序列 A

对于每个 A,你需要计算 F(10^{300}, A)

为了减少输出量,你应该输出 F(10^{300}, A) 的异或和。 

即若 F(10^{300}, A) = \{b_1,\cdots,b_m\},你需要输出 b_1 \oplus b_2 \oplus \cdots \oplus b_m

输入描述:

第一行,两个数 nT

接下来 n 行,每行 n 个数,01

保证第 i 行第 i 列为 1

接下来 T 组数据,第 i 组数据。

第一行给定 m_i

第二行给定 m_i 个数,表示 A_i

1 \leq n \leq 1000

1 \leq T \leq 500

1 \leq m_i \leq 10^6

1 \leq a_i \leq n

\sum_{i=1}^T m_i \leq 10^6

输出描述:

T 行 , 每行 1 个数 , 表示 F(10^{300}, A_i) 的异或和。
示例1

输入

复制
3 2
1 1 0
0 1 1
1 0 1
5
1 2 3 1 2
6
1 3 2 3 1 2

输出

复制
3
2

说明

样例中最后序列分别为

1 2 3 1 2

2 2 2 3 1 2