struct Egcd
{
int r;
int s;
int d;
};
Egcd func(int a, int b)
{
int r0 = 1, s0 = 0;
int r1 = 0, s1 = 1;
while (b != 0)
{
int q = a / b;
int temp = a % b;
a = b;
b = temp;
int nextr = r0 - q * r1;
r0 = r1;
r1 = nextr;
int nexts = s0 - q * s1;
s0 = s1;
s1 = nexts;
}
Egcd e1;
e1.r = r0;
e1.s = s0;
e1.d = a;
return e1;
}