scx,做规划
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 64 M,其他语言128 M
64bit IO Format: %lld

题目描述



“从今天起,我们以湘潭邀请赛争金夺银为目标驱动,敦促我们在这两个月的时间内好好训练,这样便可以避免我们在赛场上打铁了。”

scx想打邀请赛,scx想要拿牌子。

奈何本学期的任务如同萌蘖的竹笋一般,取之不尽,一眼望不到尽头。不仅如此,某些任务之间还存在一定的依赖关系。比如说,计组大作业要在学会了汇编语言后才能够进行,数电大作业要在熟练掌握Veriloh HDL以后才能进行。好在,任务的安排还算是合理,整理完后,scx得到了未来两个月的任务树。

接下来,他会执行两种操作:
- 1\,\,x\,\,y:将第 x 个任务的DDL修改为第 y 天
- 2\,\,x\,\,L\,\,R:查询以 x 节点为根节点的子树内DDL在区间 [L,R] 的任务的数量。

数据保证 1\leq L\leq R\leq 60

新生赛马上就要开始了,scx忙于出题无暇解决该问题,于是他找到了聪明善良温柔体贴美丽大方的你。

输入描述:

第一个两个数 n,m,分别表示任务的个数以及 scx 操作的数量(1\leq n,m\leq 1 \times 10 ^ 5 )

接下来一行n个数,表示初始状态下每个任务的DDL。

接下来 n-1 行,每行 2 个数,表示两个任务之间存在依赖关系

接下来 m 行,每行都是对scx一次操作的描述。

输出描述:

对于scx的每一次查询操作,输出查询的结果。
示例1

输入

复制
8 5
25 4 41 60 13 2 55 38
1 2
2 3
2 6
2 8
3 4
4 5
4 7
2 6 20 48
2 8 23 58
1 6 46
1 8 2
1 2 17

输出

复制
0
1

备注:

请注意本题的空间限制。