#ATagc024e. [AGC024E] Sequence Growing Hard

[AGC024E] Sequence Growing Hard

题目描述

请计算满足以下条件的数列组 (A0,A1,,AN)(A_0, A_1, \ldots, A_N) 的个数,并输出其对 MM 取模的结果。

  • 对于所有 ii0iN0 \leq i \leq N),AiA_i 是由 11KK 之间的整数构成的长度为 ii 的数列。
  • 对于所有 ii1iN1 \leq i \leq N),Ai1A_{i-1}AiA_i 的子序列。也就是说,存在某个 1xii1 \leq x_i \leq i,将 AiA_i 的第 xix_i 个元素去除后得到的数列与 Ai1A_{i-1} 完全一致。
  • 对于所有 ii1iN1 \leq i \leq N),AiA_i 的字典序严格大于 Ai1A_{i-1}

输入格式

输入为一行,包含三个整数 NNKKMM

NN KK MM

输出格式

输出满足条件的数列组 (A0,A1,,AN)(A_0, A_1, \ldots, A_N) 的个数对 MM 取模的结果。

样例 1

输入

2 2 100

输出

5

样例 2

输入

4 3 999999999

输出

358

样例 3

输入

150 150 998244353

输出

186248260

说明/提示

限制

  • 1N,K3001 \leq N, K \leq 300
  • 2M1092 \leq M \leq 10^9
  • N,K,MN, K, M 均为整数

样例解释 1

以下 55 组数列满足条件:

  • (),(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)

由 ChatGPT 4.1 翻译