#abc239h. [abc239_h]Dice Product 2

[abc239_h]Dice Product 2

Problem Statement

Snuke has a die (singular of dice) that shows integers from 11 through NN with equal probability, and an integer 11.
He repeats the following operation while his integer is less than or equal to MM.

  • He rolls the die. If the die shows an integer xx, he multiplies his integer by xx.

Find the expected value of the number of times he rolls the die until he stops, modulo 109+710^9+7.

Definition of the expected value modulo 109+710^9+7 We can prove that the desired expected value is always a rational number. Moreover, under the constraints of the problem, when the value is represented as an irreducible fraction fracPQ\\frac{P}{Q}, we can also prove that Qnotequiv0pmod109+7Q \\not\\equiv 0 \\pmod{10^9+7}. Thus, an integer RR such that RtimesQequivPpmod109+7R \\times Q \\equiv P \\pmod{10^9+7} and 0leqRlt109+70 \\leq R \\lt 10^9+7 is uniquely determined. Answer such RR.

Constraints

  • 2leqNleq1092 \\leq N \\leq 10^9
  • 1leqMleq1091 \\leq M \\leq 10^9

Input

Input is given from Standard Input in the following format:

NN MM

Output

Print the answer.


Sample Input 1

2 1

Sample Output 1

2

The answer is the expected value of the number of rolls until it shows 22 for the first time. Thus, 22 should be printed.


Sample Input 2

2 39

Sample Output 2

12

The answer is the expected value of the number of rolls until it shows 22 six times. Thus, 1212 should be printed.


Sample Input 3

3 2

Sample Output 3

250000004

The answer is frac94\\frac{9}{4}. We have 4times250000004equiv9pmod109+74 \\times 250000004 \\equiv 9 \\pmod{10^9+7}, so 250000004250000004 should be printed.
Note that the answer should be printed modulo bf109+7=1000000007\\bf{10^9 + 7 = 1000000007}.


Sample Input 4

2392 39239

Sample Output 4

984914531

Sample Input 5

1000000000 1000000000

Sample Output 5

776759630