// PR Bab 16, soal 3 -- pembahasan. #include using namespace std; const long long MOD = 1000000007; long long pangkat_mod(long long a, long long b, long long m) { long long hasil = 1; a %= m; while (b > 0) { if (b % 2 == 1) hasil = hasil * a % m; a = a * a % m; b /= 2; } return hasil; } int main() { long long n, k; cin >> n >> k; long long semua = pangkat_mod(k, n, MOD); long long tanpa_a = pangkat_mod(k - 1, n, MOD); // tambahkan MOD supaya hasil pengurangan tidak negatif cout << ((semua - tanpa_a) % MOD + MOD) % MOD << "\n"; return 0; }