LL fastPowMod(LL base, LL p, LL mod) {
LL ret = 1;
base %= mod;
do {
if (p & 1) ret = ret * base % mod;
base = base * base % mod;
} while (p >>= 1);
return ret;
}
LL fastPowMod(LL base, LL p, LL mod) {
LL ret = 1;
base %= mod;
do {
if (p & 1) ret = ret * base % mod;
base = base * base % mod;
} while (p >>= 1);
return ret;
}