Подсчет куч
Мы имеем корневое дерево из n вершин. Вершины должны быть пронумерованы числами от 1 до n так, чтобы каждая метка была уникальной и выполнялось условие кучи, то есть метка любой вершины должна быть меньше метки её родителя. Сколько таких нумераций существует? Поскольку это число может быть очень большим, вычислите только его остаток по модулю m.
Входные данные
Входные данные содержат несколько описаний деревьев. Первая строка содержит количество деревьев t (t ≤ 250). Каждое описание дерева начинается со строки, содержащей размер дерева n (1 ≤ n ≤ 500000) и целое число m (2 ≤ m ≤ 10^9). Следующие n-1 строк содержат p(i+1), номер родителя i+1-й вершины (1 ≤ p(i+1) ≤ i). Вершина номер 1 является корнем в каждом дереве, поэтому её родитель не указывается. Общий размер входных данных не превысит 50MB.
Выходные данные
Для каждого дерева выведите количество его допустимых нумераций по модулю заданного m.
Объяснение для примера: 8 возможных нумераций из последнего тестового примера следующие: