题目描述
在那块魔鬼般的镜子击中凯的眼睛后,他对玫瑰花的美丽不再感兴趣了。现在他喜欢看雪花。
很久以前,他发现了一片巨大的雪花,它的形式是由n个节点组成的树(连接的无环图)。树的根为1 。凯对这棵树的结构非常感兴趣。
在做了一些研究后,他有q个询问。第i个查询要求找到节点i的子树的重心v[i]。你的目标是回答所有的查询。
一个节点的子树是由这个节点和它的所有后代(直接或不直接)组成的树的一部分。换句话说,节点v的子树是由节点u形成的,节点v出现在从u到根的路径上。
树(或子树)的重心是一个节点,如果我们把它从树上抹去,它的最大子树大小都不超过整棵树大小的一半。
输入格式
输入的第一行包含两个整数n和q(2<=n<=300000,1<=q<=300000) --分别为初始树的大小和查询次数。
第二行包含n-1个整数p[1].p[2].p[3]....p[n]
(1<=p[i]<=n)表示从2到n的节点的父节点。节点1是该树的根。可以保证
定义了一棵正确的树。
下面的q行每行都包含一个整数i
( 1<=i<=n )--定义子树,我们要为其寻找重心
输出格式
对于每个询问输出该子树的重心。保证每个子树至少含有一个重心(这不是废话吗)