#include "bits/stdc++.h"
// Custom Header {{{
#define ALL(x) x.begin(), x.end()
#define rep(i, s, n)      for(int i(s); i < int(n); ++i)
#define endl '\n'
#ifndef YDK
#define eprintf(...)
#endif
using namespace std;
using i64 = long long;
using pii = pair<i64, i64>;
template<class A, class B>inline bool chmax(A &a, const B &b){return b>a ? a=b,1 : 0;}
template<class A, class B>inline bool chmin(A &a, const B &b){return b<a ? a=b,1 : 0;}
constexpr const int INF  = 0x3f3f3f3f;
constexpr const i64 LINF = 0x3f3f3f3f3f3f3f3fLL;
constexpr const int MOD  = int(1e9) + 7;
// }}}

// Library {{{
// a*x + b*y = gcd(a,b) となる x, y を拡張ユークリッドの互除法によって求める。
// a, b が負の場合も動作する (多分)
i64 extGCD(i64 a, i64 b, i64 &x, i64 &y)
{
    x = 1, y = 0;
    i64 g = a;
    if (b != 0) {
        g = extGCD(b, a % b, y, x);
        y -= a / b * x;
    }
    return g;
}
// }}}


signed main()
{
    i64 a, b, x, y;
    cin >> a >> b;

    extGCD(a, b, x, y);

    cout << x << ' ' << y << endl;
    return 0;
}

