Binary mod
long long mod_exp(long long x, long long y, long long mod) { long long res = 1; while(y > 0) { if(y & 1) res = res*x % mod; y >>= 1; x = x*x % mod; } return res; }
long long mod_exp(long long x, long long y, long long mod) { long long res = 1; while(y > 0) { if(y & 1) res = res*x % mod; y >>= 1; x = x*x % mod; } return res; }