#include <bits/stdc++.h>
#pragma comment(linker, "/STACK:16777216")
#pragma warning(default : 4)
void deb() { std::cerr << '\n'; };
template <typename T1>
void deb(T1 x1) {
  std::cerr << x1 << '\n';
};
template <typename T1, typename T2>
void deb(T1 x1, T2 x2) {
  std::cerr << x1 << " " << x2 << '\n';
};
template <typename T1, typename T2, typename T3>
void deb(T1 x1, T2 x2, T3 x3) {
  std::cerr << x1 << " " << x2 << " " << x3 << '\n';
};
const double PI = acos(-1.);
long long Round(double x) { return x < 0 ? x - .5 : x + .5; };
using namespace std;
int a, b, c;
void go(int a, int b, int &X, int &Y, int &G) {
  int x1 = 1, ____y1 = 0, x2 = 0, y2 = 1, r1 = a, r2 = b;
  while (r2) {
    int q = r1 / r2;
    r1 -= r2 * q;
    swap(r1, r2);
    x1 -= x2 * q;
    swap(x1, x2);
    ____y1 -= y2 * q;
    swap(____y1, y2);
  }
  X = x1;
  Y = ____y1;
  G = r1;
}
int main() {
  scanf("%d %d %d", &a, &b, &c);
  int x, y, g;
  go(a, b, x, y, g);
  if (c % g) return puts("-1"), 0;
  cout << x * 1LL * (-c / g) << " " << y * 1LL * (-c / g) << endl;
  return 0;
}

### Prompt

Please provide a CPP coded solution to the problem described below:

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>
#pragma comment(linker, "/STACK:16777216")
#pragma warning(default : 4)
void deb() { std::cerr << '\n'; };
template <typename T1>
void deb(T1 x1) {
  std::cerr << x1 << '\n';
};
template <typename T1, typename T2>
void deb(T1 x1, T2 x2) {
  std::cerr << x1 << " " << x2 << '\n';
};
template <typename T1, typename T2, typename T3>
void deb(T1 x1, T2 x2, T3 x3) {
  std::cerr << x1 << " " << x2 << " " << x3 << '\n';
};
const double PI = acos(-1.);
long long Round(double x) { return x < 0 ? x - .5 : x + .5; };
using namespace std;
int a, b, c;
void go(int a, int b, int &X, int &Y, int &G) {
  int x1 = 1, ____y1 = 0, x2 = 0, y2 = 1, r1 = a, r2 = b;
  while (r2) {
    int q = r1 / r2;
    r1 -= r2 * q;
    swap(r1, r2);
    x1 -= x2 * q;
    swap(x1, x2);
    ____y1 -= y2 * q;
    swap(____y1, y2);
  }
  X = x1;
  Y = ____y1;
  G = r1;
}
int main() {
  scanf("%d %d %d", &a, &b, &c);
  int x, y, g;
  go(a, b, x, y, g);
  if (c % g) return puts("-1"), 0;
  cout << x * 1LL * (-c / g) << " " << y * 1LL * (-c / g) << endl;
  return 0;
}

```