ll gcd(ll x,ll y)
{
return y==0?x:gcd(y,x%y);
}
#define ll long long
ll pow_mod(ll a, ll b, ll p){// 快速幂 a的b次方求余p
ll ret = 1;
while(b){
if(b & 1) ret = (ret * a) % p;
a = (a * a) % p;
b >>= 1;
}
return ret;
}