N,K = map(int, input().split()) mod = 10**9+7 g1 = [1]*(N+1) g2 = [1]*(N+1) for i in range(1, N+1): g1[i] = (g1[i-1]*i)%mod g2[i] = (g2[i-1]*pow(i, mod-2, mod))%mod def cmb(n, r, mod): if n < r or r < 0: return 0 return (g1[n]*g2[n-r]*g2[r])%mod ans = 0 if N == K: for i in range(1, N): ans += i * cmb(N, 2, mod) * g1[N-2] % mod ans %= mod else: for i in range(1, N): ans += i * (g1[N-1]*g2[N-1-K] + cmb(K, 2, mod)*g1[N-2]*g2[N-K]) % mod ans %= mod ans += N * g1[N-1] * g2[N-1-K] % mod ans %= mod print(ans)