#include #include #include #include #include #include #include #include #include #include using namespace std; const long long m = 1e9+7; long long mod_exp(long long b, long long e){ if (e > 0 && b == 0) return 0; long long ans = 1; b %= m; while (e > 0){ if ((e & 1LL)) ans = (ans * b) % m; e = e >> 1LL; b = (b*b) % m; } return ans; } // int main(){ long long N, K; cin >> N >> K; K %= m; cout << (m+mod_exp(K*(K+3)/2, N)-mod_exp(K*(K+1)/2, N))%m << endl; return 0; }