编程题
### 问题描述
树状图是一种数据结构,它是由 $n(n\ge 1)$ 个有限节点和 $n-1$ 条边组成一个具有层次关系的集合。把它叫做"树"是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点:
每个节点有零个或多个子节点,没有父节点的节点称为根节点,每一个非根节点有且只有一个父节点,除了根节点外,每个子节点可以分为多个不相交的子树。
欧涛发现了一棵树,树上每一个节点都有一种水果,欧涛很喜欢水果串,他现在从树根 $1$ 开始爬,每得到一种水果他就会把它串起来,直到这个水果串到达最长,他现在想知道他可以得到多少串不同的水果串(顺序不同的水果串视为两串不同的水果串)。
### 输入格式
本题为多组输入。
每组输入有以下内容。
一个数 $n(1\le n\le 5\times 10^6)$。
接下来一行 $n$ 个字符(只含小写字母)第 $i$ 个字符表示节点 $i$ 的水果种类。
然后 $n-1$ 行 $a,b$,表示 $a,b$ 两个点之间有一条边。
### 输出格式
输出欧涛可以得到的水果串的数量。
### 输入样例
```c++
6
abcdef
1 2
1 3
2 4
2 5
3 6
```
### 输出样例
```c++
3
```
### 提示
对于每个评测数据,所有 $n$ 的和小于等于 $5\times 10^{6}$。