#include <bits/stdc++.h>
namespace FastIO {
const int BUFSIZE = 1 << 20;
char ibuf[BUFSIZE], *is = ibuf, *its = ibuf;
char obuf[BUFSIZE], *os = obuf, *ot = obuf + BUFSIZE;
inline char getch() {
  if (is == its) its = (is = ibuf) + fread(ibuf, 1, BUFSIZE, stdin);
  return (is == its) ? EOF : *is++;
}
inline int getint() {
  int res = 0, neg = 0, ch = getch();
  while (!(isdigit(ch) || ch == '-') && ch != EOF) ch = getch();
  if (ch == '-') {
    neg = 1;
    ch = getch();
  }
  while (isdigit(ch)) {
    res = (res << 3) + (res << 1) + (ch - '0');
    ch = getch();
  }
  return neg ? -res : res;
}
inline void flush() {
  fwrite(obuf, 1, os - obuf, stdout);
  os = obuf;
}
inline void putch(char ch) {
  *os++ = ch;
  if (os == ot) flush();
}
inline void putint(int res) {
  static char q[10];
  if (res == 0)
    putch('0');
  else if (res < 0) {
    putch('-');
    res = -res;
  }
  int top = 0;
  while (res) {
    q[top++] = res % 10 + '0';
    res /= 10;
  }
  while (top--) putch(q[top]);
}
inline void space(bool x) {
  if (!x)
    putch('\n');
  else
    putch(' ');
}
}  // namespace FastIO
inline void read(int &x) {
  int rt = FastIO::getint();
  x = rt;
}
inline void print(int x, bool enter) {
  FastIO::putint(x);
  FastIO::flush();
  FastIO::space(enter);
}
long long A, B, C, X, Y;
inline long long ex_gcd(long long a, long long b, long long &x, long long &y) {
  if (!b) {
    x = 1, y = 0;
    return a;
  }
  long long d = ex_gcd(b, a % b, x, y);
  long long tmp = x;
  x = y, y = tmp - a / b * y;
  return d;
}
inline bool judge(long long a, long long b, long long c, long long &x,
                  long long &y) {
  long long d = ex_gcd(a, b, x, y);
  if (c % d) return false;
  long long k = c / d;
  x *= k;
  y *= k;
  return true;
}
int main(int argc, char *argv[]) {
  std::cin >> A >> B >> C;
  C = -C;
  if (judge(A, B, C, X, Y))
    printf("%lld %lld\n", X, Y);
  else
    puts("-1");
  return 0;
}

### Prompt

In CPP, your task is to solve 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>
namespace FastIO {
const int BUFSIZE = 1 << 20;
char ibuf[BUFSIZE], *is = ibuf, *its = ibuf;
char obuf[BUFSIZE], *os = obuf, *ot = obuf + BUFSIZE;
inline char getch() {
  if (is == its) its = (is = ibuf) + fread(ibuf, 1, BUFSIZE, stdin);
  return (is == its) ? EOF : *is++;
}
inline int getint() {
  int res = 0, neg = 0, ch = getch();
  while (!(isdigit(ch) || ch == '-') && ch != EOF) ch = getch();
  if (ch == '-') {
    neg = 1;
    ch = getch();
  }
  while (isdigit(ch)) {
    res = (res << 3) + (res << 1) + (ch - '0');
    ch = getch();
  }
  return neg ? -res : res;
}
inline void flush() {
  fwrite(obuf, 1, os - obuf, stdout);
  os = obuf;
}
inline void putch(char ch) {
  *os++ = ch;
  if (os == ot) flush();
}
inline void putint(int res) {
  static char q[10];
  if (res == 0)
    putch('0');
  else if (res < 0) {
    putch('-');
    res = -res;
  }
  int top = 0;
  while (res) {
    q[top++] = res % 10 + '0';
    res /= 10;
  }
  while (top--) putch(q[top]);
}
inline void space(bool x) {
  if (!x)
    putch('\n');
  else
    putch(' ');
}
}  // namespace FastIO
inline void read(int &x) {
  int rt = FastIO::getint();
  x = rt;
}
inline void print(int x, bool enter) {
  FastIO::putint(x);
  FastIO::flush();
  FastIO::space(enter);
}
long long A, B, C, X, Y;
inline long long ex_gcd(long long a, long long b, long long &x, long long &y) {
  if (!b) {
    x = 1, y = 0;
    return a;
  }
  long long d = ex_gcd(b, a % b, x, y);
  long long tmp = x;
  x = y, y = tmp - a / b * y;
  return d;
}
inline bool judge(long long a, long long b, long long c, long long &x,
                  long long &y) {
  long long d = ex_gcd(a, b, x, y);
  if (c % d) return false;
  long long k = c / d;
  x *= k;
  y *= k;
  return true;
}
int main(int argc, char *argv[]) {
  std::cin >> A >> B >> C;
  C = -C;
  if (judge(A, B, C, X, Y))
    printf("%lld %lld\n", X, Y);
  else
    puts("-1");
  return 0;
}

```