#include <bits/stdc++.h>
using namespace std;
long long gcd(long long a, long long b, pair<long long, long long> &ret) {
  pair<long long, long long> r0 = {1, 0}, r1 = {0, 1};
  if (a == 0) {
    ret = {0, 1};
    return b;
  }
  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;
  }
  ret = r0;
  return a;
}
pair<long long, long long> solve(long long a, long long b, long long c) {
  pair<long long, long long> ret;
  long long g = gcd(abs(a), abs(b), ret);
  if (c % g) return {0, 0};
  long long cg = c / g;
  return {ret.first * cg * ((a < 0) ? -1 : 1),
          ret.second * cg * ((b < 0) ? -1 : 1)};
}
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;
}

### Prompt

Please create a solution in Cpp to 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;
long long gcd(long long a, long long b, pair<long long, long long> &ret) {
  pair<long long, long long> r0 = {1, 0}, r1 = {0, 1};
  if (a == 0) {
    ret = {0, 1};
    return b;
  }
  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;
  }
  ret = r0;
  return a;
}
pair<long long, long long> solve(long long a, long long b, long long c) {
  pair<long long, long long> ret;
  long long g = gcd(abs(a), abs(b), ret);
  if (c % g) return {0, 0};
  long long cg = c / g;
  return {ret.first * cg * ((a < 0) ? -1 : 1),
          ret.second * cg * ((b < 0) ? -1 : 1)};
}
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;
}

```