题目描述
对于一个长度为 N 的序列 A=(A1,A2,dots,AN),其中的整数取值范围是 1 到 N,包括边界值,并给定一个整数 i(1leqileqN),我们定义一个长度为 10100 的序列 Bi=(Bi,1,Bi,2,dots,Bi,10100),如下所示:
- Bi,1=i。
- Bi,j+1=ABi,j(1leqj<10100)。
另外,我们定义 Si 是序列 Bi 中仅出现一次的整数的个数。更准确地说,Si 是满足 Bi,j=k 的唯一索引 j(1leqjleq10100) 的个数。
给定一个整数 N。存在 NN 种可能的 A 序列。求所有这些序列中 displaystylesumi=1NSi 的和,对 M 取模。
约束条件
- 1leqNleq2times105
- 108leqMleq109
- N 和 M 是整数。
输入
输入以以下格式从标准输入给出:
N M
输出
以整数形式输出答案。
示例输入1
4 100000000
示例输出1
624
举个例子,假设 A=(2,3,3,4)。
- 当 i=1 时,我们有 B1=(1,2,3,3,3,dots),其中的两个整数 1 和 2 出现一次,所以 S1=2。
- 当 i=2 时,我们有 B2=(2,3,3,3,dots),其中的一个整数 2 出现一次,所以 S2=1。
- 当 i=3 时,我们有 B3=(3,3,3,dots),其中没有整数出现一次,所以 S3=0。
- 当 i=4 时,我们有 B4=(4,4,4,dots),其中没有整数出现一次,所以 S4=0。
因此,我们有 displaystylesumi=1NSi=2+1+0+0=3。
如果我们类似地计算其他 255 种情况下的 displaystylesumi=1NSi,则所有 256 种情况的这个值的总和为 624。
示例输入2
7 1000000000
示例输出2
5817084
示例输入3
2023 998244353
示例输出3
737481389
按照 M 取模后输出答案。
示例输入4
100000 353442899
示例输出4
271798911