long long mod_reverse(long long a,long long m)
{
long long y=0,x=1,r=a%m,q,t,mm=m;
if(r<0)r=r+m;
while((m%r)!=0)
{
a=m;m=r;
q=a/m,r=a%m;
t=x;x=y-x*q;y=t;
}
if(r!=1)return 0;
if(x<0)x=x+mm;
return x;
}