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

Solution (in CPP):

Solution:
#include <bits/stdc++.h>
using namespace std;
long long gcd(long long a, long long b, pair<long long, long long> &ret) {
  bool swapped = false;
  if (a < b) {
    swap(a, b);
    swapped = true;
  }
  pair<long long, long long> r0 = {1, 0}, r1 = {0, 1};
  while (b != 0) {
    long long q = a / b;
    pair<long long, long long> r2 = {r0.first - q * r1.first,
                                     r0.second - q * r1.second};
    r0 = r1;
    r1 = r2;
    long long tmp = b;
    b = a % b;
    a = tmp;
  }
  if (swapped) swap(r0.first, r0.second);
  ret = r0;
  return a;
}
pair<long long, long long> solve(long long a, long long b, long long c) {
  long long aSign = 1, bSign = 1, cSign = 1;
  if (a < 0) {
    aSign = -1;
    a = -a;
  }
  if (b < 0) {
    bSign = -1;
    b = -b;
  }
  if (c < 0) {
    cSign = -1;
    c = -c;
  }
  pair<long long, long long> ret;
  long long g = gcd(a, b, ret);
  if (c % g) return {0, 0};
  long long cg = c / g * cSign;
  return {ret.first * cg * aSign, ret.second * cg * bSign};
}
int main() {
  if (fopen("input.txt", "r")) {
    freopen("input.txt", "r", stdin);
    freopen("output.txt", "w", stdout);
  }
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  long long a, b, c;
  cin >> a >> b >> c;
  auto ans = solve(a, b, -c);
  if (a * ans.first + b * ans.second + c == 0)
    cout << ans.first << ' ' << ans.second;
  else
    cout << -1;
  return 0;
}