Time Limit: 1000ms

Memory Limit: 65535KB

Description

期末考试结束后,学生们都很疯狂,纪律也难控制。徐老师到班上发完成绩单,可是同学们都坐的很不规则。统计成绩成了一件麻烦的事,好在不论同学们怎么坐,都可以假想成一个树形结构,将第一个离老师最近的同学视为根结点。现在,徐老师想要知道,如果以一个同学为根节点的子树中,成绩最高的三个同学的分数是多少?(包括此根结点同学)

Input

多组数据。

一个整数N(0<N<=10000)表示学生数(将学生编号为0~N-1,根节点为编号0)接下来一个整数表示编号为0学生的分数val(0<=val<=1000000)。下面是N-1行数据,每行两个数,分别表示编号1~N-1结点的父亲结点编号和这个同学的成绩。下一行是一个整数M,表示徐老师询问的次数。接着M行每行一个整数,表示询问中的根结点编号。

Output

对于每次询问,输出以这个编号为根的子树中成绩最高的三位同学的分数。如果子树结点<3,输出-1

Sample Input

5
1
0 10
0 5
2 7
2 8
5
0
1
2
3
4

Sample Output

10 8 7
-1
8 7 5
-1
-1

Hint

None

Source

陶树才

提交代码