int pow_mod(int a,int n,int m ) //a^n % m
{
if(n == 1) return a % m;
int x = pow_mod(a,n/2,m);
long long ans = (long long)x * x % m;
if(n % 2 == 1) ans = ans * a % m;
return (int)ans;
}
{
if(n == 1) return a % m;
int x = pow_mod(a,n/2,m);
long long ans = (long long)x * x % m;
if(n % 2 == 1) ans = ans * a % m;
return (int)ans;
}