bobo 拥有一个包含 $n$ 个顶点的连通平面图。 他随后提出了 $q$ 个问题,分为以下两种类型:
- a_i b_i- 删除顶点 $a_i$ 和 $b_i$ 之间的边,并询问连通分量的数量。? a_i b_i- 询问顶点 $a_i$ 和 $b_i$ 是否连通。
请回答他的问题。
输入格式
第一行包含两个整数 $n, q$ ($1 \le n \le 100000, 1 \le q \le 200000$)。
为了方便起见,顶点编号为 $1, 2, \dots, n$。
接下来的 $n$ 行,每行以一个整数 $k_i$ 开头,表示顶点 $i$ 的邻居数量,随后是 $k_i$ 个整数 $v_{i,1}, v_{i,2}, \dots, v_{i,k_i}$,表示按顺时针方向排列的邻居 ($0 \le k_i \le n - 1, 1 \le v_{i,j} \le n$)。
接下来的 $q$ 行表示问题。
注意,问题中的数字是经过加密的。如果上一个问题的答案是 last,则实际数字 $x$ 在输入中表现为 $x \oplus \text{last}$。(假设初始时 last = 0。“$\oplus$” 表示按位异或。)
输出格式
对于第一类问题,输出一个整数,表示连通分量的数量。 对于第二类问题,若连通则输出 “1”,否则输出 “0”。
样例
输入格式 1
4 3 3 2 3 4 2 1 4 1 1 2 1 2 - 1 2 - 0 2 ? 3 1
输出格式 1
1 2 0