Монокарп хочет повесить гирлянду на ёлку.
Ёлка — это корневое дерево из $$$n$$$ вершин с корнем в вершине $$$1$$$. Расстояние между двумя вершинами ёлки — это количество рёбер на кратчайшем пути между ними, а глубина вершины ёлки — расстояние от неё до корня.
Гирлянда состоит из $$$n$$$ лампочек, соединённых проводом и пронумерованных от $$$1$$$ до $$$n$$$. Длина части провода между каждыми двумя соседними лампочками равна $$$k$$$.
Гирлянда должна быть повешена на ёлку по следующим правилам:
Ваша задача — посчитать количество способов повесить гирлянду, соблюдая все правила, и вывести его по модулю $$$998244353$$$. Два способа являются различными, если существует хотя бы одно такое число $$$i \in [1, n]$$$, что $$$i$$$-я лампочка находится на разных вершинах в этих двух способах.
В первой строке записано одно целое число $$$t$$$ ($$$1 \le t \le 10^4$$$) — количество наборов входных данных.
В первой строке каждого набора входных данных записаны два целых числа $$$n$$$ и $$$k$$$ ($$$2 \le n \le 3 \cdot 10^5$$$; $$$1 \le k \lt n$$$) — количество вершин в ёлке и ограничение на расстояние между двумя соседними лампочками.
Во второй строке записаны $$$n-1$$$ целых чисел $$$p_2, p_3, \dots, p_n$$$ ($$$1 \le p_i \lt i$$$), где $$$p_i$$$ — родитель $$$i$$$-й вершины в ёлке.
Дополнительное ограничение на входные данные: сумма $$$n$$$ по всем наборам входных данных не превосходит $$$3 \cdot 10^5$$$.
На каждый набор входных данных выведите одно целое число — количество способов повесить гирлянду, соблюдая все правила, по модулю $$$998244353$$$.
45 11 1 2 25 21 1 2 25 31 1 2 28 41 1 3 2 3 1 4
02412
| Название |
|---|


