아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

MP3-плеер

면접 대비

시간 제한2초메모리 제한1024 MB

요약
1부터 n까지의 순열 중 서로 연속한 두 수가 인접하지 않는 순열의 개수를 m으로 나눈 나머지를 구한다.
난이도

보통10점 중 7점

유형
동적 계획법, 조합론, 구간, 수학
정답자
아직 제출이 없습니다

문제

Вася недавно купил себе новый MP3-плеер doPi Shuffle. Этот плеер отличается от всех других, которые использовал Вася, тем, что у него есть функция <<перемешивания>> списка проигрываемых песен (плейлиста).

Вася загрузил в плеер nn своих любимых песен. До этого он их постоянно слушал на компьютере и очень хорошо запомнил порядок, в котором они были в плейлисте.

Разумеется, плеер переставил песни в случайном порядке. Прослушав плейлист несколько раз на плеере, Вася с удивлением обнаружил, что никакие две, шедшие подряд друг за другом в старом плейлисте, не идут подряд в новом. Он задумался, насколько часто возможна такая ситуация.

Пронумеруем песни числами от 1 до nn в том порядке, в котором они идут в плейлисте на компьютере. Напишите программу, которая вычисляет число способов их переставить так, чтобы никакие две песни с последовательными номерами не шли непосредственно друг за другом. Так как это число может быть достаточно большим, выведите его по модулю mm.

입력

Входной файл содержит два целых числа: nn и mm (2≤n≤20002 \le n \le 2000, 2≤m≤1092 \le m \le 10^9).

출력

В выходной файл выведите остаток от деления числа способов переставить песни требуемым образом на mm.

예제2

  1. 예제 1

    입력
    2 1000000
    
    예상 출력
    1
    
  2. 예제 2

    입력
    5 1000000
    
    예상 출력
    53