#abc284g. [abc284_g]Only Once

[abc284_g]Only Once

問題文

11 以上 NN 以下の整数からなる長さ NN の数列 A=(A1,A2,dots,AN)A = (A_1,A_2,\\dots,A_N) および整数 i(1leqileqN)i\\ (1\\leq i \\leq N) に対して、 長さ 1010010^{100} の数列 Bi=(Bi,1,Bi,2,dots,Bi,10100)B_i=(B_{i,1},B_{i,2},\\dots,B_{i,10^{100}}) を以下のように定義します。

  • Bi,1=iB_{i,1}=i
  • Bi,j+1=ABi,j(1leqj<10100)B_{i,j+1}=A_{B_{i,j}}\\ (1\\leq j<10^{100})

また、SiS_i を「数列 BiB_i のなかでちょうど 11 度だけ出てくる数の種類数」と定義します。 より厳密には、SiS_i は「Bi,j=kB_{i,j}=k を満たす j(1leqjleq10100)j\\ (1\\leq j\\leq 10^{100}) がちょうど 11 つであるような kk の数」です。

整数 NN が与えられます。数列 AA として考えられるものは NNN^N 通りありますが、それら全てに対して displaystylesumi=1NSi\\displaystyle \\sum_{i=1}^{N} S_i を求め、 その総和を MM で割った余りを答えてください。

制約

  • 1leqNleq2times1051\\leq N \\leq 2\\times 10^5
  • 108leqMleq10910^8\\leq M \\leq 10^9
  • N,MN,M は整数

入力

入力は以下の形式で標準入力から与えられる。

NN MM

出力

答えを整数として出力せよ。


入力例 1

4 100000000

出力例 1

624

例として、A=(2,3,3,4)A=(2,3,3,4) の場合を考えます。

  • i=1i=1 のとき : B1=(1,2,3,3,3,dots)B_1=(1,2,3,3,3,\\dots) となるから、11 度だけ出てくる数は 1,21,222 つで、S1=2S_1=2
  • i=2i=2 のとき : B2=(2,3,3,3,dots)B_2=(2,3,3,3,\\dots) となるから、11 度だけ出てくる数は 22 のみで、S2=1S_2=1
  • i=3i=3 のとき : B3=(3,3,3,dots)B_3=(3,3,3,\\dots) となるから、11 度だけ出てくる数は存在せず、S3=0S_3=0
  • i=4i=4 のとき : B4=(4,4,4,dots)B_4=(4,4,4,\\dots) となるから、11 度だけ出てくる数は存在せず、S4=0S_4=0

よって、displaystylesumi=1NSi=2+1+0+0=3\\displaystyle \\sum_{i=1}^{N} S_i=2+1+0+0=3 です。

他の 255255 通りの AA に対しても同様に displaystylesumi=1NSi\\displaystyle \\sum_{i=1}^{N} S_i を計算したうえで、 256256 通り全ての総和をとると 624624 になります。


入力例 2

7 1000000000

出力例 2

5817084

入力例 3

2023 998244353

出力例 3

737481389

総和を MM で割った余りを出力してください。


入力例 4

100000 353442899

出力例 4

271798911