4999 - This Problem Is Too Simple!

给您一颗树,每个节点有个初始值。 现在支持以下两种操作:

  1. C i x(0<=x<2^31) 表示将i节点的值改为x。
  2. Q i j x(0<=x<2^31) 表示询问i节点到j节点的路径上有多少个值为x的节点。

输入

第一行有两个整数N,Q(1 ≤N≤ 100,000;1 ≤Q≤ 200,000),分别表示节点个数和操作个数。 下面一行N个整数,表示初始时每个节点的初始值。 接下来N-1行,每行两个整数x,y,表示x节点与y节点之间有边直接相连(描述一颗树)。 接下来Q行,每行表示一个操作,操作的描述已经在题目描述中给出。

输出

对于每个Q输出单独一行表示所求的答案。

样例

输入

5 6
10 20 30 40 50
1 2
1 3
3 4
3 5
Q 2 3 40
C 1 40
Q 2 3 40
Q 4 5 30
C 3 10
Q 4 5 30

输出

0
1
1
0
时间限制 1 秒
内存限制 128 MB
讨论 统计
上一题 下一题