Вам дано корневое дерево с \(n\) вершинами, пронумерованными от \(1\) до \(n\). Корнем дерева является вершина \(1\). Предком \(i\)-й вершины является вершина \(p_i\). Лист — это вершина без детей. Для некоторого набора листьев \(L\) пусть \(f(L)\) обозначает наименьший связный подграф, содержащий все листья \(L\).
Вы хотите разделить листы так, чтобы для любых двух различных множеств \(x, y\) разбиения \(f(x)\) и \(f(y)\) не пересекались.
Подсчитайте количество способов разбить листья по модулю \(998244353\). Два разбиения различны, если есть такие два листа, которые находятся в одном множестве в одному разбиении, а в другом в двух различных.
Выходные данные
Выведите одно целое число по модулю \(998244353\) — количество способов разбить вершины.
Примечание
В первом примере листьями являются вершины \(2,3,4,5\). Способы разделить листья: 
Во втором примере есть только один лист \(10\). Значит, что есть только один способ разбиения. Обратите внимание, что вершина \(1\) не является листом.
Примеры
| № | Входные данные | Выходные данные |
|
1
|
5 1 1 1 1
|
12
|
|
2
|
10 1 2 3 4 5 6 7 8 9
|
1
|