有一个包含 $N$ 个顶点的有根树。顶点编号为 $1$ 到 $N$,其中顶点 $1$ 为根。顶点 $i$ ($2 \le i \le N$) 的父节点记为 $P_i$。
每个顶点都有一个装有物品的盒子。此外,每个顶点都有一位英雄。 初始时,顶点 $i$ 的盒子中包含 $A_i$ 个物品。 在每个顶点 $i$,该顶点的英雄有一个收集 $C_i$ 个物品的任务。顶点 $i$ 的英雄可以选择以顶点 $i$ 为根的子树中的某些顶点,并从每个选定的顶点中取出任意数量的物品。同一个物品不能被多于一位英雄取出。
请确定英雄们是否能够采取某种行动,使得所有 $N$ 个任务都能完成。 此外,给定 $Q$ 次查询。在第 $j$ 次查询中,给定整数 $t_j, v_j, x_j$,数值按以下方式更改: 如果 $t_j = 1$,将 $A_{v_j}$ 的值更改为 $x_j$。 如果 $t_j = 2$,将 $C_{v_j}$ 的值更改为 $x_j$。
查询按顺序执行。每次查询所做的更改对后续所有查询均有效。在每次查询后,请确定是否能够完成所有 $N$ 个任务。
输入格式
第一行包含一个整数 $N$ ($1 \le N \le 10^5$)。 第二行包含 $N-1$ 个整数 $P_2, P_3, \dots, P_N$:顶点 $2, 3, \dots, N$ 的父节点 ($1 \le P_i < i$)。 第三行包含 $N$ 个整数 $A_1, A_2, \dots, A_N$ ($1 \le A_i \le 10^9$)。 第四行包含 $N$ 个整数 $C_1, C_2, \dots, C_N$ ($1 \le C_i \le 10^9$)。 第五行包含一个整数 $Q$ ($1 \le Q \le 10^5$)。 接下来的 $Q$ 行,每行包含一个由三个整数 $t_j, v_j, x_j$ ($1 \le t_j \le 2, 1 \le v_j \le N, 1 \le x_j \le 10^9$) 描述的查询:查询类型、顶点编号以及 $A_{v_j}$(对于第一类查询)或 $C_{v_j}$(对于第二类查询)的新值。
输出格式
第一行输出“Yes”(如果可以同时完成所有 $N$ 个任务),否则输出“No”。 在接下来的 $Q$ 行中,以相同的格式输出每次查询后的答案,每行一个。
样例
样例输入 1
3 1 1 2 1 3 3 1 2 2 1 1 1 2 3 1
样例输出 1
Yes No Yes
样例输入 2
5 1 2 1 3 1000000000 1000000000 1000000000 1000000000 1000000000 1 1 1 1 1 1 1 1 1
样例输出 2
Yes Yes
样例输入 3
5 1 2 2 2 109102235 645590056 708566822 497603443 131863700 50073184 441114664 164994352 304489019 158100373 8 1 5 692234112 1 3 610338520 2 4 818442884 2 4 164762830 2 4 923652447 2 4 197720766 1 1 779302743 1 1 222486377
样例输出 3
No Yes Yes No Yes No Yes Yes Yes
说明
在样例 1 中,顶点 1 的英雄从顶点 1 的盒子中取出两个物品,从顶点 3 的盒子中取出一个物品;顶点 2 的英雄从顶点 2 的盒子中取出一个物品;顶点 3 的英雄从顶点 3 的盒子中取出两个物品。因此,所有三个任务都完成了。
第一次查询将顶点 1 盒子中的物品数量从两个改为一个。在这种情况下,没有足够的物品来完成所有三个任务。
第二次查询将顶点 3 英雄的任务所需物品数量从两个改为一个。在这种情况下,顶点 1 的英雄从顶点 1 的盒子中取出一个物品,从顶点 3 的盒子中取出两个物品;顶点 2 的英雄从顶点 2 的盒子中取出一个物品;顶点 3 的英雄从顶点 3 的盒子中取出一个物品,所有三个任务再次完成。