Задачі
Музей
Музей
У столиці країни Олімпія збудований Музей Олімпійської Слави, де виставлено нагороди школярів країни з різних предметних олімпіад. Будівля музею складається з виставкових залів, з’єднаних коридорами. Коридор сполучає рівно два зали. Відомо, що кожного залу музею можна дістатися з будь-якого іншого залу, прямуючи коридорами. Також відомо, що кількість коридорів дорівнює кількості залів.
\includegraphics{https://static.e-olymp.com/content/a0/a098315e3bac8c16f29bf7c08e8b09a863b7dc9a.jpg}
Вночі музей патрулюється охоронцями. Кількість охоронців дорівнює кількості залів, та у кожен момент часу охоронець доглядає за своїм залом. Кожну годину згідно плану патрулювання деякі з охоронців переходять в іншу залу, а інші залишаються на місті. План патрулювання відповідає таким вимогам:
\begin{enumerate}
\item Для кожної зали план задає чи залишиться її охоронець на місці, чи перейде до певної зали, яка сполучена з поточною коридором.
\item Після переходів охоронців, у кожній залі повинен опинитися рівно один охоронець.
\item Кожну годину застосовується один і той самий план патрулювання.
\end{enumerate}
Наприклад, на рисунку наведений один з можливих планів патрулювання. Згідно йому кожну годину охоронець, що знаходиться у залі \textbf{1}, переходить до залу \textbf{2}; охоронець з залу \textbf{2} -- до залу \textbf{3}; з залу \textbf{3} -- до залу \textbf{1}; охоронці з залів \textbf{4} та \textbf{5} міняються місцями, а охоронець з залу \textbf{6} всю ніч проводить у цьому залі.
Напишіть програму, яка за інформацією про кількість залів музею і їх сполучення коридорами знайде кількість різних планів патрулювання музею за модулем \textbf{P}.
\InputFile
Перший рядок містить пару цілих чисел \textbf{N }(\textbf{3 }≤ \textbf{N }≤ \textbf{50000}) - кількість залів у музеї, та \textbf{P }(\textbf{2 }≤ \textbf{P }≤ \textbf{10000}). Наступні \textbf{N }рядків містять пари цілих чисел від \textbf{1 }до \textbf{N }- номери залів, що з’єднані коридором.
\OutputFile
Вивести одне ціле число - кількість планів патрулювання музею, за модулем \textbf{P} (остачу від ділення шуканої кількості на \textbf{P}).
\textit{\textbf{Пояснення до прикладу}}: Існує 20 різних планів патрулювання: (1, 2, 3, 4, 5, 6), (1, 2, 3, 5, 4, 6), (1, 2, 3, 6, 5, 4), (1, 2, 4, 3, 5, 6), (1, 3, 2, 4, 5, 6), (1, 3, 2, 5, 4, 6), (1, 3, 2, 6, 5, 4), (2, 1, 3, 4, 5, 6), (2, 1, 3, 5, 4, 6), (2, 1, 3, 6, 5, 4), (2, 1, 4, 3, 5, 6), (2, 3, 1, 4, 5, 6), (2, 3, 1, 5, 4, 6), (2, 3, 1, 6, 5, 4), (3, 1, 2, 4, 5, 6), (3, 1, 2, 5, 4, 6), (3, 1, 2, 6, 5, 4), (3, 2, 1, 4, 5, 6), (3, 2, 1, 5, 4, 6), (3, 2, 1, 6, 5, 4). На рисунку з умови зображено план (\textbf{2}, \textbf{3}, \textbf{1}, \textbf{5}, \textbf{4}, \textbf{6}).
Вхідні дані #1
6 1000 1 2 2 3 3 1 3 4 4 5 4 6
Вихідні дані #1
20