inline ll ksm(int x,int b){
int ans=1,base=x;
while(b){
if(b&1)ans*=x;
x*=x;
b>>=1;
}
return ans;
}
inline ll ksm(int x, int b){
int ans=1,base=x;
while(b){
if(b&1)ans*=x;
x*=x;
b>>=1;
}
return ans;
}
inline ll ksm(int x,int b){
int ans=1,base=x;
while(b){
if(b&1)ans*=x;
x*=x;
b>>=1;
}
return ans;
}
inline ll ksm(int x, int b){
int ans=1,base=x;
while(b){
if(b&1)ans*=x;
x*=x;
b>>=1;
}
return ans;
}