x ^ y mod z
public static long quick_pow(long x, long y, long z) {
long ans = 1;
while (y > 0) {
if ((y & 1) == 1) {
ans = (ans * x) % z;
}
y >>= 1;
x = (x * x) % z;
}
return ans;
}