program exgcd;
var a,b,x,y:int64;
function safe(x:int64):int64;
begin
safe:=((x+b) mod b+b) mod b;
end;
procedure ext_gcd(a,b:int64;var x,y:int64);
begin
if b=0 then
begin
x:=1;y:=0;
end
else
begin
ext_gcd(b,a mod b,y,x);
y:=safe(y-a div b*x);
end;
end;
begin
read(a,b);
ext_gcd(a,b,x,y);
write(safe(x));
end.
var a,b,x,y:int64;
function safe(x:int64):int64;
begin
safe:=((x+b) mod b+b) mod b;
end;
procedure ext_gcd(a,b:int64;var x,y:int64);
begin
if b=0 then
begin
x:=1;y:=0;
end
else
begin
ext_gcd(b,a mod b,y,x);
y:=safe(y-a div b*x);
end;
end;
begin
read(a,b);
ext_gcd(a,b,x,y);
write(safe(x));
end.