N,K = map(int,input().split()) mod = 10 ** 9 + 7 C = N + 5 fact = [1] * C for i in range(2,C): fact[i] = fact[i-1] * i % mod fact_inv = [1] * C fact_inv[-1] = pow(fact[-1],mod- 2,mod) for i in range(C - 2,0,-1): fact_inv[i] = fact_inv[i + 1] * (i + 1) % mod def c(n,k): if k > n or n < 0 or k < 0: return 0 return fact[n] * fact_inv[k] % mod * fact_inv[n - k] % mod def p(n,k): if k > n or k < 0 or n < 0: return 0 return fact[n] * fact_inv[n - k] % mod ans = 0 tmp = N * (N + 1) // 2 * p(N -1,K) % mod ans += tmp tmp = (N - 1) * N // 2 * c(K,2) % mod * p(N - 2,K - 2) % mod ans += tmp print(ans % mod)