#abc020d. [abc020_d]LCM Rush

[abc020_d]LCM Rush

問題文

22 つの正整数 a,a, bb の最小公倍数 LCM(a,b)LCM(a, b) とは、 aa の倍数であり、かつ bb の倍数でもあるような正整数のうち最小のものをいいます。

22 つの正整数 N,N, KK が与えられます。 11 以上 NN 以下のすべての整数 ii について LCM(i,K)LCM(i, K) を足しあわせたものを 1,000,000,0071,000,000,007 で割った余りを求めてください。


入力

入力は以下の形式で標準入力から与えられる。

NN KK

  • 11 行目に、 22 個の整数 N,N, KK (11 N,N, KK 109109) がスペース区切りで与えられる。

部分点

この問題は AtCoder Beginner Contest の問題としては非常に難しいため、通常 (100100 点満点) と異なり 101101 点満点であり、部分点が設定されている。

  • 55 点分のテストケースは 11 N,N, KK 100100 を満たす。
  • 別の 1010 点分のテストケースは 11 NN 104,104, 11 KK 100100 を満たす。
  • さらに別の 8585 点分のテストケースは 11 NN 109,109, 11 KK 100100 を満たす。以上で合計 100100 点となる。

出力

標準出力に、求める和を 1,000,000,0071,000,000,007 で割った余りを出力せよ。

末尾の改行を忘れないこと。


入力例1


4 2

出力例1


14

$LCM(1, 2) + LCM(2, 2) + LCM(3, 2) + LCM(4, 2) = 2 + 2 + 6 + 4 = 14$ となります。


入力例2


10000 100

出力例2


865504986

入力例3


1000000000 90

出力例3


50001213

入力例4


1000000000 999999900

出力例4


231285006