#P13007. [AGC035E] Develop

    ID: 12191 传统题 1000ms 256MiB 尝试: 1 已通过: 1 难度: 8 上传者: 标签>CF2500动态规划组合数学图论计数DP强连通分量

[AGC035E] Develop

题目描述

黑板上写有从 1018-10^{18}101810^{18} 的每一个整数各一个。高桥君可以任意多次(包括 00 次)重复以下操作:

  • 从黑板上选择一个 11NN 之间的整数,记为 xx,并将其从黑板上擦去。
  • 如果 x2x-2 不在黑板上,则将 x2x-2 写到黑板上。
  • 如果 x+Kx+K 不在黑板上,则将 x+Kx+K 写到黑板上。

经过若干次操作后,问黑板上可能出现的整数集合有多少种不同的情况。请输出这个数对 MM 取模的结果。
如果存在某个整数只出现在其中一个集合中,则认为两个集合不同。

输入格式

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

NN KK MM

输出格式

输出经过若干次操作后,黑板上可能出现的整数集合的种数对 MM 取模的结果。

输入输出样例 #1

输入 #1

3 1 998244353

输出 #1

7

输入输出样例 #2

输入 #2

6 3 998244353

输出 #2

61

输入输出样例 #3

输入 #3

9 4 702443618

输出 #3

312

输入输出样例 #4

输入 #4

17 7 208992811

输出 #4

128832

输入输出样例 #5

输入 #5

123 45 678901234

输出 #5

256109226

说明/提示

限制条件

  • 1KN1501 \leq K \leq N \leq 150
  • 108M10910^8 \leq M \leq 10^9
  • N,K,MN,K,M 均为整数

样例解释 1

所有小于等于 00 或大于等于 44 的整数,以及包含 1,2,31,2,3 中至少一个数的所有集合都满足条件,一共有 77 种情况。