#P4689. [Ynoi Easy Round 2016] 这是我自己的发明

[Ynoi Easy Round 2016] 这是我自己的发明

Description

您正在打 galgame,然后突然家长进来了,于是您假装在写数据结构题:

给一个树,nn 个点,有点权,初始根是 1。

mm 个操作,种类如下:

1 x 将树根换为 xx

2 x y 给出两个点 x,yx,y,从 xx 的子树中选每一个点,yy 的子树中选每一个点,求点权相等的情况数。

Input Format

第一行两个数表示 n,mn,m

第二行 nn 个数,表示每个点的点权 aia_i

之后 n1n-1 行 , 每行两个数 x,yx,y , 表示一条边。

之后 mm 行,每行表示一个操作。

Output Format

对于每个询问,输出一个数表示答案。

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

Hint

Idea:nzhtl1477,Solution:nzhtl1477,Code:nzhtl1477,Data:nzhtl1477

【数据范围】
对于 100%100\% 的数据,1n1051\le n \le 10^51m5×1051 \le m \le 5\times 10^5 , 1ai1091 \le a_i \le 10^9