#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; C[0][0] = 1; rep1(i, k + 3) { rep(j, i + 1) { if (j == 0 || j == i) { C[i][j] == 0; } else { C[i][j] = (C[i][j - 1] + C[i][j]) % MOD; } } } vl bel(k + 1); bel[0] = 1; rep1(i, k + 1) { rep(j, i) { (bel[i] += C[i + 1][j] * bel[j] % MOD) %= MOD; } (bel[i] *= mod_inverse(-i - 1, MOD)); } ll ans = 0; rep(i, k + 1) { (ans += C[k + 1][i] * bel[i] % MOD * mod_pow(n + 1, k + 1 - i, MOD) % MOD) %= MOD; } (ans *= mod_inverse(k + 1, MOD)) %= MOD; cout << ans << endl; }