n, k = map(int, input().split()) MOD = 10**9 + 7 kaijo_table = [1]*(n+1) for i in range(0,n): kaijo_table[i+1] = kaijo_table[i] * (n-i) ave = (n*(n+1)) // n total = ave * kaijo_table[k] * n flag = True for i in range(1,k+1)[::-1]: if flag: total -= kaijo_table[i] * ave * i flag = False else: total += kaijo_table[i] * ave * i flag = True print((total//2)%MOD)