#WHJ2024E. RLE(rle)

RLE(rle)

问题描述

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

  • 在两个不同字符相邻的位置将字符串 XX 分割开。
  • 对于每个分割出来的字符串 YY,将其替换为一个字符串,该字符串由 YY 组成的字符和 YY 的长度组成。
  • 按照原顺序连接被替换的字符串,不改变顺序。

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

找到长度为 NN 且由小写英文字母组成的字符串 SS 的数量,模 PP,满足条件:TT 的长度小于 SS 的长度,其中 TT 是通过上述过程对字符串 SS 得到的字符串。

输入格式

一行,空格隔开的两个整数 NN PP

输出格式

一行,输出答案。

样例输入 1

3 998244353

样例输出 1

26

那些第一个、第二个和第三个字符都相同的字符串满足条件。

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

样例输入 2

2 998244353

样例输出 2

0

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

样例输入 3

5 998244353

样例输出 3

2626

aaabbaaaaa 这样的字符串满足条件。

样例输入 4

3000 924844033

样例输出 4

607425699

找到满足条件的字符串数量,模 PP

数据规模

其中约 20%20\% 的数据 N500N \le 500

100%100\% 的数据:

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