# -*- coding: utf-8 -*-



# 入力を整数に変換して受け取る

def input_int():

    return int(eval(input()))





# マイナス1した値を返却

def int1(x):

    return int(x) - 1





# 半角スペース区切り入力をIntに変換してMapで受け取る

def input_to_int_map():

    return list(map(int, input().split()))





# 半角スペース区切り入力をIntに変換して受け取る

def input_to_int_tuple():

    return tuple(map(int, input().split()))





# 半角スペース区切り入力をIntに変換してマイナス1した値を受け取る

def input_to_int_tuple_minus1():

    return tuple(map(int1, input().split()))





MOD = 10 ** 9 + 7





from operator import mul

from functools import reduce





def cmb(n, r):

    r = min(n-r,r)

    if r == 0: return 1

    over = reduce(mul, list(range(n, n - r, -1)))

    under = reduce(mul, list(range(1, r + 1)))

    return over // under





def main():

    n, k = input_to_int_map()



    all_n = n + 1

    ret = 0

    all_list_sum = [0]

    pre = 0

    for i in range(0, all_n):

        all_list_sum.append(i + pre)

        pre = i + pre



    for choice_cnt in range(k, all_n + 1):

        ret = (ret + (all_list_sum[n + 1] - all_list_sum[n + 1 - choice_cnt] - all_list_sum[choice_cnt] + 1)) % MOD



    return ret





if __name__ == "__main__":

    print((main()))

# -*- coding: utf-8 -*-



# 入力を整数に変換して受け取る

def input_int():

    return int(eval(input()))





# マイナス1した値を返却

def int1(x):

    return int(x) - 1





# 半角スペース区切り入力をIntに変換してMapで受け取る

def input_to_int_map():

    return list(map(int, input().split()))





# 半角スペース区切り入力をIntに変換して受け取る

def input_to_int_tuple():

    return tuple(map(int, input().split()))





# 半角スペース区切り入力をIntに変換してマイナス1した値を受け取る

def input_to_int_tuple_minus1():

    return tuple(map(int1, input().split()))





MOD = 10 ** 9 + 7





from operator import mul

from functools import reduce





def cmb(n, r):

    r = min(n-r,r)

    if r == 0: return 1

    over = reduce(mul, list(range(n, n - r, -1)))

    under = reduce(mul, list(range(1, r + 1)))

    return over // under





def main():

    n, k = input_to_int_map()



    all_n = n + 1

    ret = 0

    all_list_sum = [0]

    pre = 0

    for i in range(0, all_n):

        all_list_sum.append(i + pre)

        pre = i + pre



    for choice_cnt in range(k, all_n + 1):

        ret = (ret + (all_list_sum[n + 1] - all_list_sum[n + 1 - choice_cnt] - all_list_sum[choice_cnt] + 1))



    return ret % MOD





if __name__ == "__main__":

    print((main()))

# -*- coding: utf-8 -*-
# 入力を整数に変換して受け取る
def input_int():
    return int(eval(input()))


# マイナス1した値を返却
def int1(x):
    return int(x) - 1


# 半角スペース区切り入力をIntに変換してMapで受け取る
def input_to_int_map():
    return list(map(int, input().split()))


# 半角スペース区切り入力をIntに変換して受け取る
def input_to_int_tuple():
    return tuple(map(int, input().split()))


# 半角スペース区切り入力をIntに変換してマイナス1した値を受け取る
def input_to_int_tuple_minus1():
    return tuple(map(int1, input().split()))


MOD = 10**9 + 7
from operator import mul
from functools import reduce


def cmb(n, r):
    r = min(n - r, r)
    if r == 0:
        return 1
    over = reduce(mul, list(range(n, n - r, -1)))
    under = reduce(mul, list(range(1, r + 1)))
    return over // under


def main():
    n, k = input_to_int_map()
    all_n = n + 1
    ret = 0
    all_list_sum = [0]
    pre = 0
    for i in range(0, all_n):
        all_list_sum.append(i + pre)
        pre = i + pre
    for choice_cnt in range(k, all_n + 1):
        ret = (
            ret
            + (
                all_list_sum[n + 1]
                - all_list_sum[n + 1 - choice_cnt]
                - all_list_sum[choice_cnt]
                + 1
            )
        ) % MOD
    return ret


if __name__ == "__main__":
    print((main()))

# -*- coding: utf-8 -*-
# 入力を整数に変換して受け取る
def input_int():
    return int(eval(input()))


# マイナス1した値を返却
def int1(x):
    return int(x) - 1


# 半角スペース区切り入力をIntに変換してMapで受け取る
def input_to_int_map():
    return list(map(int, input().split()))


# 半角スペース区切り入力をIntに変換して受け取る
def input_to_int_tuple():
    return tuple(map(int, input().split()))


# 半角スペース区切り入力をIntに変換してマイナス1した値を受け取る
def input_to_int_tuple_minus1():
    return tuple(map(int1, input().split()))


MOD = 10**9 + 7
from operator import mul
from functools import reduce


def cmb(n, r):
    r = min(n - r, r)
    if r == 0:
        return 1
    over = reduce(mul, list(range(n, n - r, -1)))
    under = reduce(mul, list(range(1, r + 1)))
    return over // under


def main():
    n, k = input_to_int_map()
    all_n = n + 1
    ret = 0
    all_list_sum = [0]
    pre = 0
    for i in range(0, all_n):
        all_list_sum.append(i + pre)
        pre = i + pre
    for choice_cnt in range(k, all_n + 1):
        ret = ret + (
            all_list_sum[n + 1]
            - all_list_sum[n + 1 - choice_cnt]
            - all_list_sum[choice_cnt]
            + 1
        )
    return ret % MOD


if __name__ == "__main__":
    print((main()))

-        ret = ( -            ret -            + ( -                all_list_sum[n + 1] -                - all_list_sum[n + 1 - choice_cnt] -                - all_list_sum[choice_cnt] -                + 1 -            ) -        ) % MOD -    return ret +        ret = ret + ( +            all_list_sum[n + 1] +            - all_list_sum[n + 1 - choice_cnt] +            - all_list_sum[choice_cnt] +            + 1 +        ) +    return ret % MOD