AT_agc071_e [AGC071E] Procrastinate Counter
Description
For a permutation $ P=(P_1,P_2,\dots,P_N) $ of $ (1,2,\dots,N) $ , define a length- $ N $ integer sequence $ f(P) $ as follows.
- Initialize an integer sequence $ X $ with $ X=(P_1,P_2,\dots,P_N) $ . Repeat the following operation until $ X $ is a strictly increasing sequence. (It can be shown that $ X $ will be a strictly increasing sequence in a finite number of operations for any permutation $ P $ .)
- Let $ k $ be the smallest index $ i $ ( $ 1 \leq i < N $ ) such that $ X_i > X_{i+1} $ . Move the $ k $ -th element of $ X $ to the end. More precisely, replace $ X $ with $ (X_1,X_2,\dots,X_{k-1},X_{k+1},X_{k+2},\dots,X_N,X_{k}) $ .
Let $ C_x $ be the number of times an integer $ x $ is moved to the end during this series of operations. Then, define $ f(P)=(C_1,C_2,\dots,C_N) $ .
Find the number, modulo a prime number $ M $ , of distinct sequences that can occur as $ f(P) $ .
Input Format
The input is given from Standard Input in the following format:
> $ N $ $ M $
Output Format
Print the answer.
Explanation/Hint
### Sample Explanation 1
For example, when $ P=(1,4,3,2) $ , we initialize $ X=(1,4,3,2) $ and perform operations as follows:
1. Since $ X_1 \leq X_2 $ but $ X_2 > X_3 $ , the element $ X_2=4 $ is moved to the end, and $ X $ becomes $ (1,3,2,4) $ .
2. $ X_2=3 $ is moved to the end, and $ X $ becomes $ (1,2,4,3) $ .
3. $ X_3=4 $ is moved to the end, and $ X $ becomes $ (1,2,3,4) $ .
The number of times $ 1,2,3,4 $ are moved to the end is $ 0,0,1,2 $ , respectively, so $ f(P)=(0,0,1,2) $ .
### Constraints
- $ 1 \leq N \leq 500 $
- $ 10^8 \leq M \leq 10^9 $
- $ M $ is prime.
- All input values are integers.