// 拡張ユークリッドの互除法
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<stack>
#include<algorithm>
#include<iostream>
#include<cmath>
#include<cassert>

#include<vector>
#include<queue>
#include<set>

using namespace std;

int extGCD(int a,int b,int &x,int &y);

int main(void)
{
	int a, b;
	int x, y, z;

	cin >> a >> b;

	z = extGCD(a, b, x, y);

	printf("%d %d\n", x, y);

	return 0;
 }

// 拡張ユークリッドの互除法を実施する関数
 int extGCD(int a,int b,int &x,int &y)
 {
	 // b == 0のとき gcd = a
     int d = a;

     if( b != 0 )
	 {
         //ここでgcdが求まる（ b=0になる ）まで潜る
         //さかのぼりながらx yを更新してゆく
         d = extGCD(b, a%b ,y, x);

         //y= x' - (a / b) * y'
         //xは1つ前のy yは一つ前のx
         y -= ( a / b ) * x;
     }
     else
	 {
         // gcdが求まるとき ( b == 0のとき )　x = 1,y = 0 にする
         x = 1;
		 y = 0;
     }

	 //gcdを返す
     return d;
 }

