Yet Another Problem on Empodia

두 순열이 같은 프레임 구간 집합을 가질 때 동형이라 정의하고, 길이 1부터 N까지의 순열을 이 관계로 나눈 동치류의 개수를 소수 P로 나눈 나머지를 각 줄에 출력한다.

어려움9조합론동적 계획법수학정수론아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

길이 NN의 순열 p_1,p_2,,p_Np\_1, p\_2, \ldots, p\_N 에 대해, 어떠한 연속 부분 수열 p_l,p_l+1,,p_rp\_l, p\_{l + 1}, \ldots, p\_r 에 대해 max_k=lrp_kmin_k=lrp_k=rlmax\_{k = l}^{r} p\_k - min\_{k = l}^{r} p\_k = r - l 이 성립한다면 이를 프레임 구간 (framed interval) 이라고 부른다. 예를 들어 [7, 8, 9], [3, 1, 5, 4, 2], [4, 3], [2] 은 구간이다. [3, 5], [5, 3] 은 구간이 아니다.

길이 NN의 순열 pp 와 두 정수 1lrN1 \le l \le r \le N 이 주어졌을 때, f(p,l,r)f(p, l, r)p_l,p_l+1,,p_rp\_l, p\_{l + 1}, \ldots, p\_r 이 프레임 구간이면 참이고, 아니면 거짓이다.

길이가 NN인 두 순열 P,QP, Q 가 주어졌을 때, 모든 1ijN1 \le i \le j \le N 에 대해서 f(P,i,j)    f(Q,i,j)f(P, i, j) \iff f(Q, i, j) 가 항상 만족한다면 P,QP, Q프레임 구간 동형 (framed interval isomorphic) 이라고 정의한다. 

프레임 구간 동형 관계는 길이가 NN인 모든 순열들간의 동치 관계 (equivalence relationship) 이다. 길이 1iN1 \le i \le N 의 모든 순열을 구간 동형 관계로 연관시켰을 때, 동치계 (equivalence class) 의 개수를 소수 PP로 나눈 나머지를 모든 ii 에 대해 출력하라.

입력

첫 번째 줄에 두 정수 N,PN, P 가 주어진다. (1N5000,108P1091 \le N \le 5000, 10^8 \le P \le 10^9). PP 는 소수이다.

출력

NN 개의 줄을 출력하라. 이 중 ii 번째 줄에는, 길이 ii 인 모든 순열의 동치계의 개수를 PP 로 나눈 나머지가 출력되어야 한다.