Підрахунок купок#5738

Підрахунок купок

1 секунда
64 мегабайти
Дуже складна

Маємо кореневе дерево з вершинами. Вершини повинні бути пронумеровані числами від до так, щоб кожна мітка була унікальною і виконувалася умова купи: мітка будь-якої вершини має бути меншою за мітку її батька. Скільки існує таких нумерацій? Оскільки це число може бути дуже великим, обчисліть лише його залишок за модулем .

Вхідні дані

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

Вихідні дані

Для кожного дерева виведіть кількість його допустимих нумерацій за модулем заданого .

Пояснення до прикладу: можливих нумерацій з останнього прикладу тесту наведені нижче:

Приклади

Приклад 1

Loading
Loading