#agc024e. [agc024_e]Sequence Growing Hard

[agc024_e]Sequence Growing Hard

题目描述

找出满足以下条件的可能序列元组 (A0,A1,...,AN)(A_0,A_1,...,A_N) 的数量,对 MM 取模:

  • 对于每个 ii (0leqileqN)(0\\leq i\\leq N)AiA_i 是一个由整数 11KK(包括 KK)组成、长度为 ii 的序列;
  • 对于每个 ii (1leqileqN)(1\\leq i\\leq N)Ai1A_{i-1}AiA_i 的子序列,即存在 1leqxileqi1\\leq x_i\\leq i,使得删除 AiA_i 的第 xix_i 个元素后的序列等于 Ai1A_{i-1}
  • 对于每个 ii (1leqileqN)(1\\leq i\\leq N)AiA_i 在字典序上大于 Ai1A_{i-1}

约束条件

  • 1leqN,Kleq3001 \\leq N,K \\leq 300
  • 2leqMleq1092 \\leq M \\leq 10^9
  • NNKKMM 都是整数。

输入格式

从标准输入读入数据,格式如下:

NN KK MM

输出格式

打印满足条件的可能序列元组 (A0,A1,...,AN)(A_0,A_1,...,A_N) 的数量,对 MM 取模。


示例输入 1

2 2 100

示例输出 1

5

满足条件的五个序列元组如下:

  • (),(1),(1,1)(),(1),(1,1)
  • (),(1),(1,2)(),(1),(1,2)
  • (),(1),(2,1)(),(1),(2,1)
  • (),(2),(2,1)(),(2),(2,1)
  • (),(2),(2,2)(),(2),(2,2)

示例输入 2

4 3 999999999

示例输出 2

358

示例输入 3

150 150 998244353

示例输出 3

186248260