// 对gcd的理解...
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int gcd(int x,int y){
return !y?x:gcd(y,x%y);
}
int exgcd(int a,int b,int& x,int& y){
if(b==0){
x=1; y=0;
return a;
}
int res=exgcd(b,a%b,x,y);
int t=x;
x=y;
y=t-(a/b)*y;
return res;
}
int main(){
int a,b,x,y;
scanf("%d%d",&a,&b);
int mod=gcd(a,b);
cout<<mod<<endl;
a/=mod; b/=mod;
exgcd(a,b,x,y);
while(x>0||y<0) x-=b,y+=a;
while(x+b<=0&&y-a>=0) x+=b,y-=a;
printf("%d %d\n",-x,y);
return 0;
}