#include "bits/stdc++.h" using namespace std; #define DEBUG(x) cout<<#x<<": "< #define vl vector #define vii vector< vector > #define vll vector< vector > #define vs vector #define pii pair #define pis pair #define psi pair #define pll pair #define fi first #define se second #define rep(i,n) for(int i=0;i<(int)(n);i++) #define rep1(i,n) for(int i=1;i<=(int)(n);i++) #define all(c) c.begin(),c.end() const int inf = 1000000001; const ll INF = 2e18; const ll MOD = 1000000007; const ll mod = 1000000009; const double pi = 3.14159265358979323846; #define Sp(p) cout<> n >> k; fact[0] = 1; rep1(i, k + 3) { fact[i] = fact[i - 1] * (ll)i % MOD; } vl bel(k + 5); bel[0] = 1; rep(i, k + 3) { gyaku[i] = mod_inverse(fact[i], MOD); } rep1(i, k + 1) { rep(j, i) { (bel[i] += nCr(i + 1, j) * bel[j] % MOD) %= MOD; } (bel[i] *= (-1) * mod_inverse(i + 1, MOD)) %= MOD; } ll ans = 0; rep(i, k + 1) { (ans += nCr(k + 1, i) * bel[i] % MOD * mod_pow((n + 1) % MOD, k + 1 - i, MOD) % MOD) %= MOD; } (ans *= mod_inverse(k + 1, MOD)) %= MOD; while (ans < 0) { ans += MOD; } cout << ans << endl; }