LL quick_mod(LL a,LL b,LL m)
{
LL ans=1;
while(b)
{
if(b&1)
{
ans=ans*a%m;
b--;
}
b/=2;
a=a*a%m;
}
return ans;
}
LL quick_mod(LL b,LL p,LL m)
{
if(p==0) return 1;
else if(p%2) return ((b%m)*quick_mod(b,p-1,m))%m;
else return (quick_mod(b,p/2,m)*quick_mod(b,p/2,m))%m;
}