#include <bits/stdc++.h>
long long int a, b, c;
long long int mok[100];
int cnt;
long long int euclid(long long int a, long long int b) {
  if (a % b == 0) return b;
  mok[++cnt] = a / b;
  return euclid(b, a % b);
}
void process(void) {
  long long int gcd;
  long long int t, a1 = 1, b1 = 0, a2 = 0, b2 = 1, a3, b3;
  int i;
  bool f = 0;
  if (a == 0 && b == 0) {
    if (c == 0)
      printf("0 0");
    else
      printf("-1\n");
    return;
  } else if (a == 0) {
    if (c % b == 0)
      printf("0 %I64d\n", -c / b);
    else
      printf("-1\n");
    return;
  } else if (b == 0) {
    if (c % a == 0)
      printf("%I64d 0\n", -c / a);
    else
      printf("-1\n");
    return;
  }
  if (a < b) {
    t = a, a = b, b = t;
    f = 1;
  }
  gcd = euclid(a, b);
  if (c % gcd != 0) {
    printf("-1\n");
    return;
  }
  for (i = 1; i <= cnt; i++) {
    a3 = a2, b3 = b2;
    a2 = a1 - mok[i] * a2;
    b2 = b1 - mok[i] * b2;
    a1 = a3, b1 = b3;
  }
  if (!f)
    printf("%I64d %I64d\n", -a2 * c / gcd, -b2 * c / gcd);
  else
    printf("%I64d %I64d\n", -b2 * c / gcd, -a2 * c / gcd);
}
int main(void) {
  scanf("%I64d %I64d %I64d", &a, &b, &c);
  process();
  return false;
}

### Prompt

Generate a Cpp solution 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>
long long int a, b, c;
long long int mok[100];
int cnt;
long long int euclid(long long int a, long long int b) {
  if (a % b == 0) return b;
  mok[++cnt] = a / b;
  return euclid(b, a % b);
}
void process(void) {
  long long int gcd;
  long long int t, a1 = 1, b1 = 0, a2 = 0, b2 = 1, a3, b3;
  int i;
  bool f = 0;
  if (a == 0 && b == 0) {
    if (c == 0)
      printf("0 0");
    else
      printf("-1\n");
    return;
  } else if (a == 0) {
    if (c % b == 0)
      printf("0 %I64d\n", -c / b);
    else
      printf("-1\n");
    return;
  } else if (b == 0) {
    if (c % a == 0)
      printf("%I64d 0\n", -c / a);
    else
      printf("-1\n");
    return;
  }
  if (a < b) {
    t = a, a = b, b = t;
    f = 1;
  }
  gcd = euclid(a, b);
  if (c % gcd != 0) {
    printf("-1\n");
    return;
  }
  for (i = 1; i <= cnt; i++) {
    a3 = a2, b3 = b2;
    a2 = a1 - mok[i] * a2;
    b2 = b1 - mok[i] * b2;
    a1 = a3, b1 = b3;
  }
  if (!f)
    printf("%I64d %I64d\n", -a2 * c / gcd, -b2 * c / gcd);
  else
    printf("%I64d %I64d\n", -b2 * c / gcd, -a2 * c / gcd);
}
int main(void) {
  scanf("%I64d %I64d %I64d", &a, &b, &c);
  process();
  return false;
}

```