atcoder#AGC055C. [AGC055C] Weird LIS

[AGC055C] Weird LIS

配点 : 900900

問題文

整数 N,MN, M が与えられます。次の条件を満たす長さ NN の列 A=[A1,A2,,AN]A=[A_1, A_2, \ldots, A_N] の個数を求めてください。

  • 2AiM2 \le A_i \le M (1iN1 \leq i \leq N)
  • 11 から NN までの整数の順列 P=[P1,P2,,PN]P=[P_1,P_2,\ldots,P_N] であって次の性質を持つものが存在する。- 11 から NN までの各 ii について、AiA_i は列 $[P_1, P_2, \ldots, P_{i-1}, P_{i+1}, \ldots, P_{N-1}, P_N]$ の最長増加部分列の長さに等しい。
  • 11 から NN までの各 ii について、AiA_i は列 $[P_1, P_2, \ldots, P_{i-1}, P_{i+1}, \ldots, P_{N-1}, P_N]$ の最長増加部分列の長さに等しい。

この個数は非常に大きい可能性があるため、これを素数 QQ で割った余りを出力してください。

制約

  • 3N50003 \le N \le 5000
  • 2MN12 \le M \le N-1
  • 108Q10910^8 \le Q \le 10^9
  • QQ は素数である。

入力

入力は以下の形式で標準入力から与えられる。

NN MM QQ

出力

答えを QQ で割った余りを出力せよ。

3 2 686926217
1

このような列は [2,2,2][2, 2, 2] のみです。ここで [1,2,3][1, 2, 3] という順列が存在して性質を満たします。

4 3 354817471
9

このような列は次の 99 個です: [2,2,2,2][2, 2, 2, 2], [2,2,2,3][2, 2, 2, 3], [2,2,3,2][2, 2, 3, 2], [2,2,3,3][2, 2, 3, 3], [2,3,2,2][2, 3, 2, 2], [2,3,3,2][2, 3, 3, 2], [3,2,2,2][3, 2, 2, 2], [3,3,2,2][3, 3, 2, 2], [3,3,3,3][3, 3, 3, 3]

5 2 829412599
1

このような列は [2,2,2,2,2][2, 2, 2, 2, 2] のみです。

5 3 975576997
23
69 42 925171057
801835311