#include<cstdio>
#define M 30
int a,n,x,y,o=-1,l;
char r[M];
int A()
{
int s=0;
for(o++;r[o]>='0'&&r[o]<='9';o++)
s=s*10+r[o]-'0';
return s;
}
void S(int x)
{
int i,d=x>999999999?10:x>99999999?9:x>9999999?8:x>999999?7:x>99999?6:x>9999?5:x>999?4:x>99?3:x>9?2:1;
for(i=d-1;i>=0;x/=10,i--)
r[l+i]=x%10+48;
r[l+d]=32,l+=d+1;
}
void E(int &x,int &y,int a,int b)
{
int z;
if(!b)
x=1,y=0;
else
E(x,y,b,a%b),z=x,x=y,y=z-y*(a/b);
}
int main()
{
freopen("inversmodular.in","r",stdin),freopen("inversmodular.out","w",stdout),fread(r,1,M,stdin),a=A(),n=A(),E(x,y,a,n),S(x<=0?(n+x%n):x)),fwrite(r,1,l,stdout);
}