#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define popcount __builtin_popcount using namespace std; typedef long long int ll; typedef pair P; const ll MOD=1e9+7; int main() { ll dp[1000010][2]={}; dp[0][0]=1; ll p; int k; cin>>p>>k; for(int i=1; i<=k; i++){ dp[i][0]=(dp[i-1][0]+dp[i-1][1]*(p-1))%MOD; (dp[i][0]+=dp[i-1][0]*p+dp[i-1][1]*(p-1))%=MOD; dp[i][1]=(dp[i-1][0]+dp[i-1][1]*(p-1))%MOD; (dp[i][1]+=dp[i-1][1]*(p-1))%=MOD; } cout<