1 /* ax ≡ 1 (mod b)就是ax=by+1,而且x,y都为整数,所以ax mod b==1,对于ax=by+1,用扩展gcd求解,再用找到合适的x输出即可*/
2 #include<iostream>
3 using namespace std;
4 #include<cstdio>
5 long long a,b;
6 void exgcd(long long a,long long b,long long &x,long long &y,long long &gcd)
7 {
8 if(b==0)
9 {
10 gcd=a;x=1;y=0;
11 return;
12 }
13 exgcd(b,a%b,x,y,gcd);
14 int t=x;
15 x=y;
16 y=t-(a/b)*y;
17 }
18 int main()
19 {
20 cin>>a>>b;
21 long long gcd,x,y;
22 exgcd(a,b,x,y,gcd);
23 long long a0=a/gcd,b0=b/gcd;
24 long long k=1/gcd;
25 x*=k;y*=k;
26 if(x<=0)
27 {
28 int i=1;
29 while(1)
30 {
31 if(a*(x+i*b0)+b*(y-i*a0)==1)
32 {
33 if(x+i*b0>0)
34 {
35 cout<<(x+i*b0)<<endl;
36 return 0;
37 }
38 }
39 i++;
40 }
41 }
42 if(x>0)
43 {
44 int i=-1;
45 while(1)
46 {
47 if(a*(x+i*b0)+b*(y-i*a0)==1)
48 {
49 if(x+i*b0<0)
50 {
51 cout<<x<<endl;
52 return 0;
53 }
54 }
55 i--;
56 }
57 }
58 return 0;
59 }