编程题
### 问题描述
一天,小蓝在他的小屋外发现了一颗神奇的树,它的树叶上闪烁着各种不同的颜色。小蓝对这颗树产生了浓厚的兴趣,于是他决定研究这颗树的奥秘。这棵树被称为"奇幻之树",因为它拥有神奇的能力。
每个节点都有自己独特的颜色,这些颜色代表了树上不同生物的种类。小蓝注意到,树的每个节点都有一个颜色标签 $c_i$ ,而这些颜色标签在树上不断变化,使得树上的生物多样性持续增加。
小蓝决定用算法来研究这颗树。他提出了一些问题,希望能够了解奇幻之树上不同颜色的种类数量。每次他会选择一颗树上的节点,然后探索以这个节点为根的**子树**中的颜色种类。
具体问题如下:给定一棵节点为 $n$ 的有根树,**根节点为** $1$ ,每个节点有一个颜色 $c_i$ ,小蓝有 $q$ 组询问,每次询问给定一个节点 $x$ ,问 $x$ 为根的**子树**中,有多少种不同的颜色。
小蓝很期待你能够帮助他解决这些有趣的问题,揭示奇幻之树的神奇之处。每次你回答一个询问,都会让小蓝对这颗树的理解更进一步,同时也会使他的奇幻之旅变得更加精彩。
### 输入格式
第一行输入两个整数 $n, q$ 。代表树的节点数量与询问数量。
接下来一行,输入 $n$ 个整数 $c_1, c_2, c_3...c_n$ , 代表每个节点的颜色。
接下来 $n - 1$ 行,每行两个整数 $u_i, v_i$ ,代表存在一条边连接 $u_i,v_i$ 两点。
接下来 $q$ 行, 每行一个整数 $x_i$ ,代表询问的点。
### 输出格式
输出 $q$ 行,每行一个整数,代表每次询问的答案。
### 样例输入
```
5 3
1 2 3 4 5
1 2
1 3
2 4
2 5
1
2
3
```
### 样例输出
```
5
3
1
```
### 说明
- $1$ 号节点为根节点,包含 $\lbrace 1,2,3,4,5 \rbrace $ 共计 $5$ 种颜色。
- 选中 $2$ 号节点时,包含 $\lbrace 2,4,5 \rbrace $ 共计 $3$ 种颜色。
- 选中 $3$ 号节点时,包含 $\lbrace 3 \rbrace $ 共计 $1$ 种颜色。
### 评测数据范围
$1 \le n, q \le 10^5, 1 \le c_i \le 100, 1 \le u_i,v_i,x_i \le n$ 。
输入保证是一棵树。