#include using namespace std; int main(){ long p,k; cin >> p >> k; long const mod = 1e9+7; vector >dp(k+1,vector(2)); //0:0 1:非0 dp[0][0] = 1; for(int i=1;i<=k;i++){ dp[i][0] = (dp[i-1][0] * (p+1) + dp[i-1][1]*2)%mod; dp[i][1] = (dp[i-1][0] * (p-1) + dp[i-1][1]*(2*p-2))%mod; } cout << dp[k][0] << endl; }