У вас есть дерево из $$$n$$$ вершин, корень которого находится в вершине $$$1$$$. На каждой вершине написана строчная латинская буква.
Для каждого целого числа $$$i$$$ от $$$1$$$ до $$$n$$$ решите следующую задачу независимо:
Вы выполнили вышеописанный процесс ровно один раз для каждого возможного пути. Два пути считаются различными, если одна вершина посещается в одном пути, но не в другом.
Теперь вы получили множество строк. Вы хотите узнать сумму квадратов количества вхождений для каждого значения строки. Поскольку ответ может быть очень большим, выведите его по модулю $$$998\,244\,353$$$.
$$$^{\text{∗}}$$$Вершина $$$v$$$ находится в поддереве другой вершины $$$x$$$, если и только если кратчайший путь от вершины $$$1$$$ до вершины $$$v$$$ проходит через вершину $$$x$$$.
Каждый тест состоит из нескольких наборов входных данных. В первой строке находится одно целое число $$$t$$$ ($$$1 \le t \le 5000$$$) — количество наборов входных данных. Далее следует описание наборов входных данных.
Для каждого набора входных данных первая строка содержит целое число $$$n$$$ ($$$1 \le n \le 5000$$$).
Следующая строка — это строка длиной $$$n$$$, содержащая только строчные латинские буквы, где $$$i$$$-й символ обозначает букву на $$$i$$$-й вершине.
За ней следуют $$$n-1$$$ строк, каждая из которых содержит два целых числа $$$u$$$ и $$$v$$$ ($$$1 \leq u,v \leq n, u \neq v$$$), представляющих ребро дерева.
Гарантируется, что сумма $$$n$$$ по всем наборам входных данных не превосходит $$$5000$$$.
Для каждого набора входных данных выведите $$$n$$$ чисел на отдельной строке: ответ для $$$i=1,2,\ldots,n$$$, по модулю $$$998\,244\,353$$$.
53abb1 21 32aa1 24ccbb1 22 32 44aaaa1 44 22 310cacbcccbac1 22 33 42 51 62 73 84 98 10
9 1 15 129 9 1 169 5 1 19185 65 19 3 1 1 1 3 1 1
Для первого набора входных данных:
В четвёртом наборе входных данных для вершины $$$1$$$ возможны такие строки:
Поэтому ответ для вершины $$$1$$$ равняется $$$1^2+4^2+6^2+4^2=69$$$.