2 3 9
8
ll ksm(ll a, ll b, ll p) { ll ans = 1; while (b) { if (b % 2) { ans *= a; ans %= p; } a *= a; a %= p; b >>= 1; } return ans; }