#ABC162E. [ABC162E] Sum of gcd of Tuples (Hard)

[ABC162E] Sum of gcd of Tuples (Hard)

Score : 500500 points

Problem Statement

Consider sequences {A1,...,AN}\{A_1,...,A_N\} of length NN consisting of integers between 11 and KK (inclusive).

There are KNK^N such sequences. Find the sum of gcd(A1,...,AN)\gcd(A_1, ..., A_N) over all of them.

Since this sum can be enormous, print the value modulo (109+7)(10^9+7).

Here gcd(A1,...,AN)\gcd(A_1, ..., A_N) denotes the greatest common divisor of A1,...,ANA_1, ..., A_N.

Constraints

  • 2N1052 \leq N \leq 10^5
  • 1K1051 \leq K \leq 10^5
  • All values in input are integers.

Input

Input is given from Standard Input in the following format:

NN KK

Output

Print the sum of gcd(A1,...,AN)\gcd(A_1, ..., A_N) over all KNK^N sequences, modulo (109+7)(10^9+7).

3 2
9

gcd(1,1,1)+gcd(1,1,2)+gcd(1,2,1)+gcd(1,2,2)\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)+\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

Thus, the answer is 99.

3 200
10813692
100000 100000
742202979

Be sure to print the sum modulo (109+7)(10^9+7).