ll qpow(ll a,ll n){
ll ans = 1;
while(n){
if(n & 1) ans = ans * a % mod;
a = a * a % mod;
n >>= 1;
}
return ans;
}
ll qpow_decimal(ll a,char s[N]){ //求解a^s,把幂依次变成a^1,a^10,a^100,
int len = strlen(s);
ll ans = 1;
for(int i=len-1;i>=0;i--){
if(s[i] != '0') ans = ans * qpow(a,s[i] - '0') % mod;
a = qpow(a,10);
}
return ans;
}