int inv(int a, int p)
{
if(a == 1) return 1;
return inv(p%a, p) * (p-p/a) % p;
}
int pow_p(int a, int b, int c) // a^b % c
{
int s = 1;
while(b > 0)
{
if(b % 2) s *= a;
a *= a;
b /= 2;
}
return s;
}
int inv(int a, int p)
{
return pow_p(a, p-2, p); //a^(p-2) % p
}