#include <bits/stdc++.h>
using namespace std;
struct EuclidReturn {
  long long u, v, d;
  EuclidReturn(long long _u, long long _v, long long _d) {
    u = _u;
    v = _v;
    d = _d;
  }
};
EuclidReturn Extended_Euclid(long long a, long long b) {
  if (b == 0) return EuclidReturn(1, 0, a);
  EuclidReturn aux = Extended_Euclid(b, a % b);
  long long v = aux.u - (a / b) * aux.v;
  return EuclidReturn(aux.v, v, aux.d);
}
int main() {
  long long a, b, c;
  cin >> a >> b >> c;
  EuclidReturn r = Extended_Euclid(a, b);
  if (c % r.d == 0) {
    long long d = c / r.d;
    long long r1 = -1 * r.u * d;
    long long r2 = -1 * r.v * d;
    cout << r1 << " " << r2 << endl;
  } else
    cout << "-1" << endl;
}

### Prompt

Construct a Cpp code solution to the problem outlined:

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;
struct EuclidReturn {
  long long u, v, d;
  EuclidReturn(long long _u, long long _v, long long _d) {
    u = _u;
    v = _v;
    d = _d;
  }
};
EuclidReturn Extended_Euclid(long long a, long long b) {
  if (b == 0) return EuclidReturn(1, 0, a);
  EuclidReturn aux = Extended_Euclid(b, a % b);
  long long v = aux.u - (a / b) * aux.v;
  return EuclidReturn(aux.v, v, aux.d);
}
int main() {
  long long a, b, c;
  cin >> a >> b >> c;
  EuclidReturn r = Extended_Euclid(a, b);
  if (c % r.d == 0) {
    long long d = c / r.d;
    long long r1 = -1 * r.u * d;
    long long r2 = -1 * r.v * d;
    cout << r1 << " " << r2 << endl;
  } else
    cout << "-1" << endl;
}

```