题目描述
找出满足以下条件的可能序列元组 (A0,A1,...,AN) 的数量,对 M 取模:
- 对于每个 i (0leqileqN),Ai 是一个由整数 1 到 K(包括 K)组成、长度为 i 的序列;
- 对于每个 i (1leqileqN),Ai−1 是 Ai 的子序列,即存在 1leqxileqi,使得删除 Ai 的第 xi 个元素后的序列等于 Ai−1;
- 对于每个 i (1leqileqN),Ai 在字典序上大于 Ai−1。
约束条件
- 1leqN,Kleq300
- 2leqMleq109
- N、K 和 M 都是整数。
输入格式
从标准输入读入数据,格式如下:
N K M
输出格式
打印满足条件的可能序列元组 (A0,A1,...,AN) 的数量,对 M 取模。
示例输入 1
2 2 100
示例输出 1
5
满足条件的五个序列元组如下:
- (),(1),(1,1)
- (),(1),(1,2)
- (),(1),(2,1)
- (),(2),(2,1)
- (),(2),(2,2)
示例输入 2
4 3 999999999
示例输出 2
358
示例输入 3
150 150 998244353
示例输出 3
186248260