#include <bits/stdc++.h>
using namespace std;
struct triplet {
  int64_t x;
  int64_t y;
  int64_t gcd;
};
triplet extendedEuclid(int64_t a, int64_t b) {
  if (b == 0) {
    triplet ans;
    ans.gcd = a;
    ans.x = 1;
    ans.y = 0;
    return ans;
  }
  triplet smallAns = extendedEuclid(b, a % b);
  triplet ans;
  ans.gcd = smallAns.gcd;
  ans.x = smallAns.y;
  ans.y = smallAns.x - (a / b) * smallAns.y;
  return ans;
}
int main() {
  int64_t a, b, c;
  cin >> a >> b >> c;
  triplet ans = extendedEuclid(a, b);
  if (c % ans.gcd != 0) return cout << -1, 0;
  cout << ans.x * (-c / ans.gcd) << " " << ans.y * (-c / ans.gcd);
  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;
struct triplet {
  int64_t x;
  int64_t y;
  int64_t gcd;
};
triplet extendedEuclid(int64_t a, int64_t b) {
  if (b == 0) {
    triplet ans;
    ans.gcd = a;
    ans.x = 1;
    ans.y = 0;
    return ans;
  }
  triplet smallAns = extendedEuclid(b, a % b);
  triplet ans;
  ans.gcd = smallAns.gcd;
  ans.x = smallAns.y;
  ans.y = smallAns.x - (a / b) * smallAns.y;
  return ans;
}
int main() {
  int64_t a, b, c;
  cin >> a >> b >> c;
  triplet ans = extendedEuclid(a, b);
  if (c % ans.gcd != 0) return cout << -1, 0;
  cout << ans.x * (-c / ans.gcd) << " " << ans.y * (-c / ans.gcd);
  return 0;
}

```