#include using namespace std; using ll = long long int; using lc = complex; int main(void) { constexpr ll MOD = 1e9 + 7; constexpr double PI = acos(-1); cout << fixed << setprecision(32); cin.tie(0); ios::sync_with_stdio(false); ll p, k; cin >> p >> k; ll z = 1, nz = 0; while(k--) { ll pz = z, pnz = nz; (z = 2*(pnz+pz) + pz*(p-1)) %= MOD; (nz = (2*pnz+pz)*(p-1)) %= MOD; } cout << z << endl; }