题目>>http://codevs.cn/problem/1200/
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
typedef long long ll;
ll a,b,x,y,r,d;
int exgcd(ll a,ll b,ll &x,ll &y)
{
if(!b){x = 1;y = 0;return a;}
ll d = exgcd(b,a % b,x,y);
ll t = x - a/b*y;
x = y;y = t;
return d;
// 通过下一轮求出 bx+(a%b)y = d;
// (a%b) = a - (a/b*b);
//原式整理可得ay + b(x-a/b*y)
//所以 x = y;y= x - a/b*y
}
int main()
{
cin>>a>>b; //求ax≡1(mod b) 等效于求ax-by=1因为只求x与y无关所以可求ax+by=1的解。
d = exgcd(a,b,x,y);
r = b / d;
cout<<(x % r + r) % r<<'\n';
}