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

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

소의 아침 운동

시간 제한1초메모리 제한512 MB

요약
N과 소수 M이 주어질 때, 길이 N인 순열의 위수가 K가 되는 모든 양의 정수 K의 합을 M으로 나눈 나머지를 구한다.
난이도

어려움10점 중 9점

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

문제

Farmer John이 소들을 위해 새로운 아침 운동 루틴을 만들었다(또 또!).

이전과 마찬가지로 Farmer John의 NN마리 소(1≤N≤1041\le N\le 10^4)가 한 줄로 서 있다. 왼쪽에서 ii번째 소의 이름표는 1≤i≤N1\le i\le N인 각 ii에 대해 ii이다. 그는 소들에게 처음 순서와 같아질 때까지 다음 단계를 반복하라고 말한다.

  • 길이 NN의 순열 AA가 주어질 때, 소들은 순서를 바꾸어, 바꾸기 전 왼쪽에서 ii번째 소가 바꾼 후 왼쪽에서 AiA_i번째가 되도록 한다.

예를 들어 A=(1,2,3,4,5)A=(1,2,3,4,5)이면 소들은 한 단계를 수행한다. A=(2,3,1,5,4)A=(2,3,1,5,4)이면 소들은 여섯 단계를 수행한다. 각 단계 후 왼쪽에서 오른쪽으로 소들의 순서는 다음과 같다:

  • 0단계: (1,2,3,4,5)(1,2,3,4,5)
  • 1단계: (3,1,2,5,4)(3,1,2,5,4)
  • 2단계: (2,3,1,4,5)(2,3,1,4,5)
  • 3단계: (1,2,3,5,4)(1,2,3,5,4)
  • 4단계: (3,1,2,4,5)(3,1,2,4,5)
  • 5단계: (2,3,1,5,4)(2,3,1,5,4)
  • 6단계: (1,2,3,4,5)(1,2,3,4,5)

소들이 정확히 KK단계를 수행하게 하는 길이 NN의 순열이 존재하는 모든 양의 정수 KK의 합을 구하라.

이 수는 매우 클 수 있으므로 답을 MM으로 나눈 나머지를 출력하라(108≤M≤109+710^8\le M\le 10^9+7, MM은 소수).

입력

첫째 줄에 NN과 MM이 주어진다.

출력

정수 하나를 출력한다.

힌트

소들이 11, 22, 33, 44, 55, 66단계를 수행하게 하는 순열이 존재한다. 따라서 답은 1+2+3+4+5+6=211+2+3+4+5+6=21이다.

예제1

  1. 예제 1

    입력
    5 1000000007
    
    예상 출력
    21