编程题
### 问题描述
在狮子王国中,所有的狮子都居住在一棵家族树上。树的根节点是狮王,编号为 1。每个狮子都有一个名字,名字的首字母是一个大写字母($A\sim Z$)。每只狮子到狮王的路径上经过的狮子数目(包含该狮子与狮王)被定义为它的嗜好深度。
每年,狮子王国都会举行一场盛大的家族聚会。在聚会上,选定一只狮子 $a$ 作为本届聚会的组织者,然后选定一个正整数 $b$ 作为本届聚会的难度。**以狮子 $a$ 作为子树的根**,选择嗜好深度为 $b$ 的所有狮子,将这些狮子的名字首字母重新排列,看是否可以构成一个回文串。如果可以构成回文串,则本届家族聚会算成功,否则就算失败。注意,空字符串也被认定为回文串。
狮王很关心每届聚会的成功率,但是手头上的家族树结构太复杂,无法判断每次聚会设置的 $a$、$b$ 是否可以使得聚会成功。你能帮助狮王解答这个问题吗?
### 输入格式
第一行包含两个整数 $n$ 和 $m$($1\leq n,m\leq 10^5$),表示狮子的数量和询问的数量。
接下来 $n-1$ 行,每行包含两个整数 $u$ 和 $v$($1\leq u,v \leq n$),表示树上存在一条从节点 $u$ 到节点 $v$ 的边。
接下来一行,包含一个长度为 $n$ 的字符串 $s$,表示每只狮子的名字,其中第 $i$ 个字符表示第 $i$ 只狮子的名字首字母。$s$ 只包含大写字母 $A \sim Z$。
接下来 $m$ 行,每行包含两个整数 $a_i$ 和 $b_i$($1\leq a_i,b_i \leq n$),表示第 $i$ 届聚会的组织者和难度。
### 输出格式
输出 $m$ 行,每行包含一个字符串,如果本届家族聚会能成功,则输出 `Y`,否则输出 `N`。
### 样例输入
```text
6 3
1 2
1 3
1 6
2 4
2 5
ABCDEB
1 2
2 1
2 3
```
### 样例输出
```text
Y
Y
N
```
### 说明
在第一个询问中,以狮子 $1$ 作为子树的根,嗜好深度为 $2$ 的狮子的首字母包含 `B`, `C`,`B`,可以形成回文串 `BCB`。
在第二个询问中,以狮子 $2$ 作为子树的根,不存在嗜好深度为 $1$ 的狮子,可以形成一个空的回文串。
在第三个询问中,以数字 $2$ 作为子树的根,嗜好深度为 $3$ 的狮子的首字母包含 `D`,`E`,无法构成回文串。