#abc249e. [abc249_e]RLE

[abc249_e]RLE

题目描述

考虑以下过程,给定一个由小写英文字母组成的字符串 XX

  • 在相邻两个不同字符的位置将字符串 XX 切分开。
  • 对每个被切分出来的字符串 YY,用由 YY 组成的字符后面跟着 YY 的长度的字符串替换它。
  • 按原来的顺序连接替换后的字符串。

例如,aaabbcccc 被分割为 aaabbcccc,分别被替换为 a3b2c4,然后按原来的顺序连接,得到 a3b2c4。如果给定的字符串是 aaaaaaaaaa,则新的字符串是 a10

找到长度为 NN、由小写英文字母组成的字符串 SS 的数量,满足按照上述过程得到的字符串 TT 的长度小于 SS 的长度。

约束条件

  • 1N30001 \le N \le 3000
  • 108P10910^8 \le P \le 10^9
  • NNPP 是整数。
  • PP 是质数。

输入

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

NN PP

输出

打印答案。


示例输入 1

3 998244353

示例输出 1

26

满足条件的字符串是那些第 112233 个字符都相同的字符串。

例如,aaa 变成 a3,满足条件,而 abc 变成 a1b1c1,不满足条件。


示例输入 2

2 998244353

示例输出 2

0

请注意,如果一个字符串被转换为长度相同的另一个字符串,例如 aa 变成 a2,它不满足条件。


示例输入 3

5 998244353

示例输出 3

2626

满足条件的字符串包括 aaabbaaaaa


示例输入 4

3000 924844033

示例输出 4

607425699

找到满足条件的字符串的数量(模 PP)。