题目描述
对于一个非负整数序列 a,定义它对应的独立集序列 f(a):
- 假设将 ai 改为 0,此时选出若干个两两不相邻的数使得它们的和最大,则 f(a)i 表示和的最大值。
现在给定 n,m,求有多少个长度为 b 的非负整数序列 b 满足以下条件:
- 存在至少一个长度为 n,值域为 [0,m] 的非负整数序列 a 使得 f(a)=b。
答案对给定的质数 MOD 取模。
输入格式
共一行,三个数,表示 n,m,MOD。
输出格式
共一行,一个数,表示答案。
提示
本题使用子任务捆绑测试。
对于 100% 的数据,1≤n,m≤3×103,n≥2,109<MOD<1.01×109,MOD 为质数。
- Subtask 1(10%):n,m≤5。
- Subtask 2(15%):n≤300,m=1。
- Subtask 3(25%):n≤300,m≤5。
- Subtask 4(20%):n,m≤50。
- Subtask 5(15%):n,m≤300。
- Subtask 6(15%):无特殊限制。