616_E. Sum of Remainders
Calculate the value of the sum: n mod 1 + n mod 2 + n mod 3 + ... + n mod m. As the result can be very large, you should print the value modulo 109 + 7 (the remainder when divided by 109 + 7).

The modulo operator a mod b stands for the remainder after dividing a by b. For example 10 mod 3 = 1.

Input

The only line contains two integers n, m (1 ≤ n, m ≤ 1013) — the parameters of the sum.

Output

Print integer s — the value of the required sum modulo 109 + 7.

Examples

Input

3 4


Output

4


Input

4 4


Output

1


Input

1 1


Output

0
```python
from math import floor


def range_sum(low, up):
    return (up * (up + 1)) // 2 - (low * (low + 1)) // 2


# for _ in range(int(input())):
mod = int(1e9 + 7)
n,m=map(int,input().split())
ans, sqrt_n = m*n, int(floor(n**0.5))
temp = 0
for i in range(1, sqrt_n + 1):
    up = n // i
    low = n // (i + 1)
    up = min(up, m)
    if(up < low):
        continue
    temp1 = range_sum(low, up)
    temp += (temp1 * i)

for i in range(1, sqrt_n + 1):
    if m < i:
        break;
    if n // i != i:
        temp += (n // i) * i
print((ans-temp)%mod)
```