P23106 [AtCoder] Dice Product 2
提高+
题目描述

Problem Statement

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

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

Find the expected value of the number of times he rolls the die until he stops, modulo 10^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 $\frac{P}{Q}$, we can also prove that $Q \not\equiv 0 \pmod{10^9+7}. Thus, an integer R$ such that $R \times Q \equiv P \pmod{10^9+7}$ and $0 \leq R \lt 10^9+7$ is uniquely determined. Answer such R.

Input

Input is given from Standard Input in the following format:
N M

Output

Print the answer.

Constraints

  • $2 \leq N \leq 10^9$
  • $1 \leq M \leq 10^9$

Sample Input 1

2 1

Sample Output 1

2

The answer is the expected value of the number of rolls until it shows 2 for the first time. Thus, 2 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 2 six times. Thus, 12 should be printed.

Sample Input 3

3 2

Sample Output 3

250000004

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

Sample Input 4

2392 39239

Sample Output 4

984914531

Sample Input 5

1000000000 1000000000

Sample Output 5

776759630

输入格式

见题面 Input 部分

输出格式

见题面 Output 部分

样例输入
2 1
样例输出
2