#517. 杀戮尖塔

杀戮尖塔

杀戮尖塔

题目描述

高塔上有 nn 个房间,其中 11 号房间是整座尖塔的顶层,高度为 00

还有 n1n-1 条边链接这 nn 个房间,使得尖塔联通,每个房间到塔尖的距离。(也就是说是棵树)

这里的规则是:只能往塔尖的方向走。(也就是只能从儿子走向父亲)

各个房间里留下了一些遗物,用以奖励来到尖塔的挑战者。(同一种遗物可能会多次出现)

你需要回答 qq 次询问,每次回答从一个房间 xx 出发,想拿到编号为 yy 的遗物,走的步数最少的情况下会停留在哪个房间。

输入格式

第一行:一个正整数 nn,表示房间数。

第二行:n1n - 1 个正整数,第 ii 个整数 pip_i ,描述了一条道路 (i+1)pi(i+1)\to p_i

接下来 nn 行,每行由一个非负整数 kik_i 开头,表示第 ii 个城市拥有的遗物种类数。紧接着 kik_i 个不同的正整数 ai,1,ai,2,,ai,kia_{i, 1}, a_{i, 2}, \cdots, a_{i, k_i},代表该房间拥有的遗物的编号。

下一行一个正整数 qq,表示询问的数量。

随后 qq 行,每行给定两个参数 x,yx, y,表示你现在从房间 xx 出发,想要拿到遗物 yy 。(只要拿到这个遗物你就不会继续往上走了)

输出格式

输出共 qq 行,第 ii 行代表对第 ii 个询问的回答。

如果能拿到这个遗物,则输出最后停留房间的编号,否则,输出 1-1

样例

Input 1

5
1 2 3 3
2 2 1
0
2 5 2
2 4 5
1 5
4
3 4
5 2
4 5
1 3

Output 1

-1
3
4
-1

提示说明

Constraints

子任务 n,q,kin, q, \sum k_i \le 特殊性质 分值
11 100100 N/A 1010
22 10001000 1515
33 10510^5 pi=i1p_i = i - 1 1010
44 尖塔结构随机生成
55 N/A 5050
66 2×1062\times 10^6 55

保证 1ai,j,yn1\le a_{i, j} , y\le n,尖塔结构合法。

如遇到本地栈空间爆炸,可在编译选项中添加:

"-Wl,--stack=819200000"