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