#include using namespace std; #define int long long #define MOD 1000000007 int kai[100010]; void init(){ kai[0] = 1; for(int i = 1;i < 100010;i++){ kai[i] = kai[i-1] * i % MOD; } } int pow_mod(int n, int m){ int ans = 1; while(m > 0){ if(m & 1) ans = ans * n % MOD; n = n * n % MOD; m >>= 1; } return ans; } int nPr(int n, int r){ return kai[n] * pow_mod(kai[n-r], MOD-2) % MOD; } int souwa(int n){ return (n*(n+1)) % MOD * pow_mod(2, MOD-2) % MOD; } signed main(){ int n, k; cin >> n >> k; init(); int ans = 0; ans = (nPr(n-1, k) + souwa(k-1)*nPr(n-2, k-2) % MOD) % MOD * souwa(n-1) % MOD; ans = (ans + (nPr(n-1, k) * n) % MOD) % MOD; cout << ans << endl; return 0; }