快速求
#define int long long
int qmi(int a,int b,int p)
{
int res=1%p;
while(b)
{
if(b&1)res=(res*1LL*a)%p;
a=a*1LL*a%p;
b>>=1;
}
return res;
}
位运算防溢出求积
#define int long long
int smul(int a,int b,int p)
{
int res=0;
while(b)
{
if(b&1)res=(res+a)%p;
a=2*a%p;
b>>=1;
}
return res;
}