Пешо шифрує перестановку з чисел, де кожне число від до зустрічається рівно один раз. Він використовує такий алгоритм:
Замінити всі числа в перестановці, де число замінюється на -е просте число.
Вибрати випадкове додатне , що не перевищує .
Розглянути всі відрізки, що складаються з підряд ідучих елементів отриманої послідовності, які містять хоча б елементів. Для кожного з них записати добуток мінімальних чисел.
Нехай дорівнює кількості різних добутків, отриманих на попередньому кроці.
Шифром перестановки буде трійка " ".
Наприклад, розглянемо, як Пешо зашифрує перестановку {, , , }:
. Перші простих числа це , , і . Тому він замінює в перестановці
на четверте просте число, тобто ;
на перше просте число, тобто ;
на третє просте число, тобто ;
на друге просте число, тобто .
Пешо отримує послідовність , , , .
. Тепер він вибирає випадкове число . Нехай = .
. Всі відрізки отриманої послідовності:{}, {}, {}, {}, {, }, {, }, {, }, {, , }, {, , }, {, , , }
З них він залишає тільки ті, які містять хоча б = елементи, і для кожного з них обчислює добуток двох мінімальних елементів:
{, } * =
{, } * =
{, } * =
{, , } * =
{, , } * =
{, , , } * =
Отримуються наступні добутки {, , , , , }
. Всього в наборі чотири різних добутки: {, , , }, таким чином = .
. Шифр початкової перестановки " ".
Пешо швидко зрозумів, що алгоритм шифрує послідовності краще, ніж він очікував. Він хотів, щоб код був взаємно-однозначним, але виявилося, що не завжди можна розшифрувати отриманий шифр.
Напишіть програму, яка за заданим шифром обчислює кількість різних можливих початково заданих перестановок. Виведіть залишок від ділення відповіді на .
Один рядок містить три цілих числа , (1 \leq k \leq n \leq 400) і (1 \leq p \leq 10^9).
Виведіть кількість перестановок з шифром " ". Відповідь вивести за модулем .
Приклад 1
Приклад 2
У першому прикладі перестановки {, , } і {, , } можуть бути зашифровані як " ".
У другому прикладі підходять перестановки {, , , }, {, , , }, {, , , }, {, , , }, {, , , }, {, , , }, {, , , }, {, , , }, {, , , }, {, , , }, {, , , }, {, , , }.