#abc239h. [abc239_h]Dice Product 2

[abc239_h]Dice Product 2

题目描述

Snuke 有一个骰子,上面显示的是从 11NN 的整数,概率相同,还有一个整数 11
当他的整数小于等于 MM 时,他会重复以下操作。

  • 他掷骰子。如果骰子上显示的是整数 xx,他就把他的整数乘以 xx

计算直到他停止前,他掷骰子的次数的期望值(对 109+710^9+7 取模)。

109+710^9+7 取模的期望值的定义:我们可以证明所需的期望值总是一个有理数。而且,在问题的约束条件下,当该值表示为一个不可约分数 fracPQ\\frac{P}{Q} 时,我们也可以证明 Qnotequiv0pmod109+7Q \\not\\equiv 0 \\pmod{10^9+7}。因此,可以唯一地确定满足条件的整数 RR,使得 RtimesQequivPpmod109+7R \\times Q \\equiv P \\pmod{10^9+7},且 0leqRlt109+70 \\leq R \\lt 10^9+7。输出这样的 RR

约束条件

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

输入

输入格式如下:

NN MM

输出

输出答案。


示例输入 1

2 1

示例输出 1

2

答案是掷骰子直到第一次出现 22 时的次数的期望值。因此,应该输出 22


示例输入 2

2 39

示例输出 2

12

答案是掷骰子直到出现 22 六次的次数的期望值。因此,应该输出 1212


示例输入 3

3 2

示例输出 3

250000004

答案是 frac94\\frac{9}{4}。我们有 4times250000004equiv9pmod109+74 \\times 250000004 \\equiv 9 \\pmod{10^9+7},因此应该输出 250000004250000004
注意,答案应该对 bf109+7=1000000007\\bf{10^9 + 7 = 1000000007} 取模。


示例输入 4

2392 39239

示例输出 4

984914531

示例输入 5

1000000000 1000000000

示例输出 5

776759630