#P4242. 树上的毒瘤

树上的毒瘤

题目背景

Salamander开心地把一大袋毒瘤带回了家,把他们染上了不同的颜色,并把他们挂在了院子里的树上。

题目描述

这棵树上有nn个节点,由n1n-1条树枝相连。初始时树上都挂了一个毒瘤,颜色为cic_i。接下来Salamander将会进行qq个操作。

Salamander有时会修改树上某个点到另外一个点的简单路径上所有毒瘤的颜色。

对于给定的树上某个点集SS,Salamander还定义了某个点的权值:

Wi=jST(i,j)W_i=\sum_{j\in S}T(i,j)

其中T(i,j)T(i,j)表示iijj的路径上毒瘤颜色的段数,比如iijj的路径上毒瘤颜色为12233121223312时,颜色段数为55

Salamander对树上的毒瘤们的状态很感兴趣,所以有时会指定树上mm个节点作为点集,询问这mm个节点的权值。

输入格式

第一行包括两个正整数nnqq,表示树上的节点数和操作个数。

第二行包括用空格隔开的nn个正整数cic_i,表示树上每个节点初始的毒瘤颜色。

接下来n1n-1行,每行两个正整数uuvv,表示树上有一条连接uuvv的边。

接下来描述qq个操作:

  • 1 若给出的第一个整数等于11,那么接下来将会有三个正整数uuvvyy,表示将树上编号为uu的点到编号为vv的点的简单路径上的毒瘤颜色全都改为yy

  • 2 若给出的第一个整数等于22,那么接下来将会有一个正整数mm,表示指定的树上节点个数。下一行将会有mm个用空格隔开的互不相同的正整数,表示当前询问给定的mm个节点。

输出格式

若干行,对于每个22操作输出对应的答案。

10 10
708916891 100649777 100649777 544409200 100649777 47435517 47435517 708916891 644811607 544409200 
3 2
7 1
8 1
1 10
3 4
1 5
9 2
1 2
3 6
2 1
6 
2 6
8 10 9 3 2 4 
2 2
7 8 
2 1
5 
2 2
6 10 
2 3
6 1 4 
2 1
7 
1 9 8 100649777
1 7 9 544409200
2 4
10 9 1 2 
1 
13 17 15 11 11 15 
3 3 
1 
5 5 
7 7 7 
1 
4 4 4 4 

提示

保证输入数据合法。

对于30%的数据,有1n,q10001\leq n,q\leq 1000m5000\sum m\leq 5000

对于60%的数据,有1n,q200001\leq n,q\leq 20000m100000\sum m\leq 100000

对于100%的数据,有1n,q1000001\leq n,q\leq 100000ci,y109c_i,y\leq 10^9m200000\sum m\leq 200000mnm\leq n