#ABC239H. [ABC239Ex] Dice Product 2

[ABC239Ex] Dice Product 2

Score : 600600 points

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 $10^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 PQ\frac{P}{Q}, we can also prove that Q≢0(mod109+7)Q \not\equiv 0 \pmod{10^9+7}. Thus, an integer RR such that R×QP(mod109+7)R \times Q \equiv P \pmod{10^9+7} and 0R<109+70 \leq R \lt 10^9+7 is uniquely determined. Answer such RR.

Constraints

  • 2N1092 \leq N \leq 10^9
  • 1M1091 \leq M \leq 10^9

Input

Input is given from Standard Input in the following format:

NN MM

Output

Print the answer.

2 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.

2 39
12

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

3 2
250000004

The answer is 94\frac{9}{4}. We have 4×2500000049(mod109+7)4 \times 250000004 \equiv 9 \pmod{10^9+7}, so 250000004250000004 should be printed. Note that the answer should be printed modulo 109+7=1000000007\bf{10^9 + 7 = 1000000007}.

2392 39239
984914531
1000000000 1000000000
776759630