Олимпиадный тренинг

Задача . D. Дореми и игра с колышками


У Дореми есть \(n+1\) колышек. \(n\) красных колышков расставлены в вершины правильного \(n\)-угольника и пронумерованы от \(1\) до \(n\) против часовой стрелки. Также есть синий колышек несколько меньшего диаметра по центру многоугольника. Вокруг красных колышков натянута резинка.

Дореми сегодня очень скучно, поэтому она решила сыграть в игру. Изначально у нее есть пустой массив \(a\). До тех пор, пока резинка не коснется синего колышка, она будет повторять следующую операцию:

  1. выбрать \(i\) (\(1 \leq i \leq n\)) такое, что красный колышек номер \(i\) еще не был убран;
  2. убрать красный колышек номер \(i\);
  3. добавить \(i\) в конец массива \(a\).

Дореми интересно, сколько различных массивов \(a\) может получиться как итог данного процесса. Так как ответ может быть большим, выведите его по модулю \(p\). Гарантируется, что \(p\) — простое число.

Игра с \(n=9\) и \(a=[7,5,2,8,3,9,4]\), а также игра с \(n=8\) и \(a=[3,4,7,1,8,5,2]\).
Входные данные

Первая строка содержит два целых числа \(n\) и \(p\) (\(3 \leq n \leq 5000\), \(10^8 \le p \le 10^9\)) — количество красных колышков и модуль соответственно.

Гарантируется, что \(p\) — простое число.

Выходные данные

Выведите одно целое число — количество различных массивов \(a\), которые могут получиться как итог данной игры по модулю \(p\).

Примечание

В первом примере \(n=4\), в числе прочих могут получиться следующие массивы \(a\): \([4,2,3]\), \([1,4]\). Однако массив \(a\) не может быть равен \([1]\) или \([1,4,3]\).


Примеры
Входные данныеВыходные данные
1 4 100000007
16
2 1145 141919831
105242108

time 1500 ms
memory 512 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя