#abc162e. [abc162_e]Sum of gcd of Tuples (Hard)

[abc162_e]Sum of gcd of Tuples (Hard)

問題文

11 以上 KK 以下の整数からなる長さ NN の数列 A1,...,AN\\{A_1,...,A_N\\} を考えます。

そのようなものは KNK^N 個ありますが、その全てについての gcd(A1,...,AN)\\gcd(A_1,...,A_N) の和を求めてください。

ただし、答えは非常に大きくなる可能性があるため、和を (109+7)(10^9+7) で割ったあまりを出力してください。

なお、gcd(A1,...,AN)\\gcd(A_1,...,A_N)A1,...,ANA_1,...,A_N の最大公約数を表します。

制約

  • 2leqNleq1052 \\leq N \\leq 10^5
  • 1leqKleq1051 \\leq K \\leq 10^5
  • 入力は全て整数

入力

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

NN KK

出力

KNK^N 個の数列全てについての gcd(A1,...,AN)\\gcd(A_1,...,A_N) の和を (109+7)(10^9+7) で割ったあまりを出力せよ。


入力例 1

3 2

出力例 1

9

$\\gcd(1,1,1)+\\gcd(1,1,2)+\\gcd(1,2,1)+\\gcd(1,2,2)$ $+\\gcd(2,1,1)+\\gcd(2,1,2)+\\gcd(2,2,1)+\\gcd(2,2,2)$ 1ˉ+1+1+1+1+1+1+2=9\=1+1+1+1+1+1+1+2=9

となるため、答えは 99 です。


入力例 2

3 200

出力例 2

10813692

入力例 3

100000 100000

出力例 3

742202979

和を 109+710^9+7 で割った余りを出力してください。