有一棵由 $N$ 个顶点组成的树(无向无环连通图)。顶点编号为 $1$ 到 $N$,所有顶点的颜色为黑色或白色。
请编写一个程序处理以下查询:
- $X$:改变顶点 $X$ 的颜色(白色 $\to$ 黑色,黑色 $\to$ 白色)。然后输出所有不同白色顶点对 $(a,b)$ 的 LCA(最近公共祖先)的深度之和。
根节点是顶点 $1$。根节点的深度为 $0$,其他顶点的深度定义为(父节点的深度)$+ 1$。
输入格式
第一行包含顶点个数 $N$ 和查询个数 $Q$。
第二行包含 $N$ 个整数 $t_1, t_2, \cdots, t_N$,表示顶点 $1, 2, \cdots, N$ 的颜色。对于 $1 \le i \le N$,$t_i = 0$ 表示黑色,$t_i = 1$ 表示白色。
第三行包含 $N-1$ 个整数 $P_2, P_3, \cdots, P_N$,表示顶点 $2, 3, \cdots, N$ 的父节点。
接下来 $Q$ 行每行包含一个整数 $X$,表示一个查询。
输出格式
第一行输出初始状态的答案。
接下来 $Q$ 行,每行输出对应查询的答案。
样例
样例输入 1
5 5 1 0 0 1 1 1 1 3 2 5 3 5 4 2
样例输出 1
0 0 1 1 0 1
样例输入 2
10 10 1 0 0 1 1 0 1 0 1 0 1 2 1 4 5 6 1 4 1 8 4 4 4 10 9 2 1 5 3
样例输出 2
7 7 4 7 4 4 2 2 2 0 1
样例输入 3
20 20 1 0 1 0 1 0 0 1 1 0 0 0 0 1 0 0 0 1 1 0 1 2 3 4 2 2 1 3 2 4 4 3 3 3 8 14 11 7 7 5 12 19 5 10 18 17 13 10 5 5 13 10 4 11 8 14 13 19 15
样例输出 3
26 16 26 21 33 39 26 38 51 44 31 44 32 38 53 71 71 55 70 79 97