n, k = list(map(int, input().split()))

mod = 10 ** 9 + 7



ans = 0

for t in range(k, n+2):

    mini = t * (t-1) // 2 % mod

    residue = n - t + 1

    maxim = mini + t * residue

    maxim %= mod

    count = maxim - mini + 1

    count %= mod

    ans += count

    ans %= mod



print(ans)

n, k = list(map(int, input().split()))

mod = 10 ** 9 + 7



ans = 0

for t in range(k, n+2):

    pattern = t * (n+1-t) + 1 % mod

    ans = (ans + pattern) % mod



print(ans)

n, k = list(map(int, input().split()))
mod = 10**9 + 7
ans = 0
for t in range(k, n + 2):
    mini = t * (t - 1) // 2 % mod
    residue = n - t + 1
    maxim = mini + t * residue
    maxim %= mod
    count = maxim - mini + 1
    count %= mod
    ans += count
    ans %= mod
print(ans)

n, k = list(map(int, input().split()))
mod = 10**9 + 7
ans = 0
for t in range(k, n + 2):
    pattern = t * (n + 1 - t) + 1 % mod
    ans = (ans + pattern) % mod
print(ans)

-    mini = t * (t - 1) // 2 % mod -    residue = n - t + 1 -    maxim = mini + t * residue -    maxim %= mod -    count = maxim - mini + 1 -    count %= mod -    ans += count -    ans %= mod +    pattern = t * (n + 1 - t) + 1 % mod +    ans = (ans + pattern) % mod