编程题
### 问题描述
在农场里,小齐正在雪地中艺术地堆雪人。她堆了一颗抽象的雪人树,由 $N$ 个雪球构成,雪球之间通过 $N-1$ 条分支相连,确保每两个雪球之间都有唯一的路径。
小齐在雪人的一个雪球上添加了一个鼻子,将其标记为雪人的头。为了增加视觉效果,她计划使用不同颜色的染料给雪球上色,她有无限多的装满各种颜色染料的桶。
当小齐给一个雪球上色时,这个颜色将传播到其子树中的所有雪球(雪球 $y$ 在雪球 $x$ 的子树中,如果 $x$ 到头部雪球的路径上包含 $y$)。通过仔细施加每种颜色,小齐确保每个雪球都会保留它已经染过的所有颜色。例如,如果一个雪球已经染过颜色 $[1,2,3]$,那么给它涂上颜色 $4$,那么这个雪球将拥有颜色 $[1,2,3,4]$。
雪球染色后,小齐可能想知道她雪人的某一部分有多丰富多彩。雪球 $x$ 的“色彩丰富度”等于颜色种类数,即雪球 $x$ 上染过颜色 $c$ 的不同 $c$ 的数量。如果小齐询问你关于雪球 $x$ 的情况,你需要回答子树中所有雪球的色彩丰富度之和。
### 输入格式
第一行包含两个整数 $N$ 和查询次数 $Q$。
接下来的 $N-1$ 行,每行包含两个空格分隔的整数 $a$ 和 $b$,表示连接雪球 $a$ 和雪球 $b$ 的分支。
最后的 $Q$ 行中,每行包含一个查询。查询的形式有两种:
类型为 $1$ 的查询:表示小齐在雪球 $x$ 上涂颜色 $c$,将其子树中的所有雪球涂上相同的颜色。
类型为 $2$ 的查询:表示查询雪球 $x$ 的子树中所有雪球的色彩丰富度之和。
### 输出格式
对于每个类型为 $2$ 的查询,输出相应子树中所有雪球的色彩丰富度之和。
### 样例输入
```
5 18
1 2
1 3
3 4
3 5
1 4 1
2 1
2 2
2 3
2 4
2 5
1 5 1
2 1
2 2
2 3
2 4
2 5
1 1 1
2 1
2 2
2 3
2 4
2 5
```
### 样例输出
```
1
0
1
1
0
2
0
2
1
1
5
1
3
1
1
```
### 评测数据规模
$1 \leq Q \leq 10^5$,$1 \leq a, b \leq N$。