#include <bits/stdc++.h>
using namespace std;
template <class T>
T gcd(T a, T b) {
  T t;
  while (a) {
    t = a;
    a = b % a;
    b = t;
  }
  return b;
}
template <class T>
T eea(T a, T b, T& x, T& y) {
  if (!b) {
    x = 1;
    y = 0;
    return a;
  }
  T x1, y1;
  T g = eea(b, a % b, x1, y1);
  x = y1;
  y = x1 - (a / b) * y1;
  return g;
}
long long bigmod(long long x, long long y, long long m) {
  long long z = 0;
  for (int i = 60; i >= 0; i--) {
    z += z;
    if (z >= m) z -= m;
    if (x & (1ll << i)) {
      z += y;
      if (z >= m) z -= m;
    }
  }
  return z;
}
template <long long mod1, long long mod2>
struct crt {
  long long i1, i2, mm;
  crt() {
    eea(mod1, mod2, i1, i2);
    mm = mod1 * mod2;
    i1 = (i1 % mm + mm) % mm;
    i2 = (i2 % mm + mm) % mm;
  }
  long long operator()(long long x, long long y) const {
    x = bigmod(x, i2, mm);
    y = bigmod(y, i1, mm);
    return (bigmod(x, mod2, mm) + bigmod(y, mod1, mm)) % mm;
  }
};
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(nullptr);
  cout.tie(nullptr);
  cerr.tie(nullptr);
  long long a, b, c;
  cin >> a >> b >> c;
  long long fx = -1, fy = -1;
  if (a < 0) {
    a *= -1;
    fx *= -1;
  }
  if (b < 0) {
    b *= -1;
    fy *= -1;
  }
  long long g = gcd(a, b);
  if (c % g) return cout << -1, 0;
  long long x, y;
  eea(a, b, x, y);
  cout << fx * x * c / g << ' ' << fy * y * c / g << '\n';
}

### Prompt

In CPP, your task is to solve the following problem:

A line on the plane is described by an equation Ax + By + C = 0. You are to find any point on this line, whose coordinates are integer numbers from  - 5·1018 to 5·1018 inclusive, or to find out that such points do not exist.

Input

The first line contains three integers A, B and C ( - 2·109 ≤ A, B, C ≤ 2·109) — corresponding coefficients of the line equation. It is guaranteed that A2 + B2 > 0.

Output

If the required point exists, output its coordinates, otherwise output -1.

Examples

Input

2 5 3


Output

6 -3

### Response

```cpp
#include <bits/stdc++.h>
using namespace std;
template <class T>
T gcd(T a, T b) {
  T t;
  while (a) {
    t = a;
    a = b % a;
    b = t;
  }
  return b;
}
template <class T>
T eea(T a, T b, T& x, T& y) {
  if (!b) {
    x = 1;
    y = 0;
    return a;
  }
  T x1, y1;
  T g = eea(b, a % b, x1, y1);
  x = y1;
  y = x1 - (a / b) * y1;
  return g;
}
long long bigmod(long long x, long long y, long long m) {
  long long z = 0;
  for (int i = 60; i >= 0; i--) {
    z += z;
    if (z >= m) z -= m;
    if (x & (1ll << i)) {
      z += y;
      if (z >= m) z -= m;
    }
  }
  return z;
}
template <long long mod1, long long mod2>
struct crt {
  long long i1, i2, mm;
  crt() {
    eea(mod1, mod2, i1, i2);
    mm = mod1 * mod2;
    i1 = (i1 % mm + mm) % mm;
    i2 = (i2 % mm + mm) % mm;
  }
  long long operator()(long long x, long long y) const {
    x = bigmod(x, i2, mm);
    y = bigmod(y, i1, mm);
    return (bigmod(x, mod2, mm) + bigmod(y, mod1, mm)) % mm;
  }
};
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(nullptr);
  cout.tie(nullptr);
  cerr.tie(nullptr);
  long long a, b, c;
  cin >> a >> b >> c;
  long long fx = -1, fy = -1;
  if (a < 0) {
    a *= -1;
    fx *= -1;
  }
  if (b < 0) {
    b *= -1;
    fy *= -1;
  }
  long long g = gcd(a, b);
  if (c % g) return cout << -1, 0;
  long long x, y;
  eea(a, b, x, y);
  cout << fx * x * c / g << ' ' << fy * y * c / g << '\n';
}

```