const long long mod=1e9+7;
long long quick_muli(long long a,long long b){
long long ans=0;
while(b){
if(b&1)ans=(ans+a)%mod;
b>>=1;
a=(a+a)%mod;
}
return ans;
}
long long quick_mod(long long a,long long b){
long long ans=1;
while(b){
if(b&1)ans=quick_muli(ans,a);
b>>=1;
a=quick_muli(a,a);
}
return ans;
}
//使用时直接调用quick_mod(a,b),即求a^b%mod.