#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; long long mod = 1000000007; long long m_pow(long long x, long long y) { long long ans = 1; while (y > 0) { if ((y & 1) == 1) { ans = ans * x % mod; } x = x * x % mod; y >>= 1; } return ans; } int main() { long long n, k; cin >> n >> k; k %= mod; long long x = k * (k + 1) / 2 % mod; long long x1 = (x + k) % mod; long long ans = m_pow(x1, n) - m_pow(x, n); cout << (ans + mod) % mod << endl; }