#P11155. [rnoi 2025]Dreaming is not harmful

[rnoi 2025]Dreaming is not harmful

Description

在婚庆公司 M 中,公司计划进行大规模裁员。所有员工都在计算离开公司还需要多少天。

公司的结构是一棵以编号为1的顶点为根的树。编号为 v v 的员工的直属上司是编号为 pv p_v 的员工。每个员工都有一个不同的能力值 sv s_v 。能力值越高,这个员工对公司越有用。但招聘过程不透明,可能会出现能力低的员工管理能力高的员工的情况。

由于进行重大的人事重组,每天CEO(树的根节点)都会被解雇。如果公司还有剩余员工,则CEO最有能力的直属下属将接替CEO的位置,前任CEO的其他直属下属会变成新CEO的直属下属。

每个员工都能轻易计算自己距离CEO位置需要多少天,但很多人不愿等待那么久,因为他们只会担任CEO一天。为了加速成为CEO的过程,员工们准备对某个同事进行“取消”(cancel)。被取消员工的能力立即变为0,因为没人愿意再与其共事。

你需要回答 q q 个询问,第 k k 个询问是:员工编号为 vk v_k 想知道,如果他准备好对公司某一个员工进行“取消”,那么最少还需多少天他可以成为CEO。

每个询问都是独立的假设情景,不会影响员工实际能力值。

Format

Input

输入第一行包含两个整数 n,q n, q 2n300000,1qn 2 \leq n \leq 300000, 1 \leq q \leq n ),表示员工数量和询问数量。

第二行包含 n1 n-1 个整数 p2,p3,,pn p_2, p_3, \dots, p_n 1pi<i 1 \leq p_i < i ),表示编号为 2n 2 \sim n 的每个员工的直属上司的编号。

第三行包含 n n 个整数 s1,s2,,sn s_1, s_2, \dots, s_n 1sin 1 \leq s_i \leq n ),表示每个员工的能力值,保证互不相同。

第四行包含 q q 个整数 v1,v2,,vq v_1, v_2, \dots, v_q 1vin 1 \leq v_i \leq n ),表示询问的员工编号,保证所有 vi v_i 互不相同。

Output

输出一行包含 q q 个整数,以空格分隔,依次为每次询问的答案(对应编号为 v1,v2,,vq v_1, v_2, \dots, v_q 的员工最少还需多少天可以成为CEO)。

Samples

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

Note

样例解释:

第一个询问:编号为5的员工想要成为CEO,最快的办法是取消2号员工,只需等待1天:

初始结构:

   1
  / \
 2   5
/ \
3  4

第1天后:

  5
  |
  2
 / \
3  4

第二个询问:编号为3的员工想要成为CEO,最快的办法是取消5号或4号员工,比如取消5号员工,需要等待3天:

初始结构:

   1
  / \
 2   5
/ \
3  4

第1天:

   2
 / | \
3  4  5

第2天:

  4
 / \
3   5

第3天:

  3
  |
  5

第三个询问:编号为1的员工已经是CEO,因此等待天数为0。

第四个询问:编号为4的员工想要成为CEO,最快办法同样是取消5号员工,需要等待2天。

Scoring

本题分9个子任务,每个子任务的得分情况如下,只有通过本组所有数据以及所有必需的前置组数据才能得到对应分数。

组别 分值 附加条件 必需通过组 备注
0 - - 样例
1 10 pi=1 p_i = 1 pi=i1 p_i = i - 1 ,且最多只有两个 i i 满足 pi=1 p_i = 1
2 6 - 1 pi=1 p_i = 1 pi=i1 p_i = i - 1
3 8 n50,q50 n \leq 50, q \leq 50 0 -
4 13 n1000,q1000 n \leq 1000, q \leq 1000 0,3
5 11 q100 q \leq 100
6 9 - - pi=i2 p_i = \lfloor \frac{i}{2} \rfloor
7 11 0,3,6 任一员工的直属和间接上司不超过100个
8 14 - 对任意 i>1 i > 1 ,满足 si>spi s_i > s_{p_i}
9 18 0-8 离线评测

(直属和间接上司的定义:员工的直属上司,以及直属上司的直属和间接上司)