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

Solution (in JAVA):

Solution:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.math.BigInteger;
import java.util.Random;
import java.util.StringTokenizer;

public class C {
    BufferedReader in;
    StringTokenizer st;
    PrintWriter out;

    void out(BigInteger x, BigInteger y, BigInteger a, BigInteger b, BigInteger c) {
        out.println(x + " " + y);
        if (a.multiply(x).add(b.multiply(y)).add(c).signum() != 0) {
            System.out.println(a + " * " + x + " + " + b + " * " + y + " + " + c + " != 0");
            throw new AssertionError();
        }
    }

    void solve() throws IOException {
        BigInteger a = new BigInteger(next());
        BigInteger b = new BigInteger(next());
        BigInteger c = new BigInteger(next());
        if (c.remainder(a.gcd(b)).signum() != 0) {
            out.println(-1);
        } else {
            BigInteger gcd = a.gcd(b);
            a = a.divide(gcd);
            b = b.divide(gcd);
            c = c.divide(gcd);
            if (a.signum() == 0) {
                out(BigInteger.ZERO, c.divide(b).negate(), a, b, c);
            } else if (b.signum() == 0) {
                out(c.divide(a).negate(), BigInteger.ZERO, a, b, c);
            } else {
                BigInteger x = a.modInverse(b.abs());
                BigInteger y = b.modInverse(a.abs());
                BigInteger sum = a.multiply(x).add(b.multiply(y)).subtract(BigInteger.ONE);
                BigInteger ratio = sum.divide(a.multiply(b));
                x = x.subtract(ratio.multiply(b));
                x = x.multiply(c).negate();
                y = y.multiply(c).negate();
                out(x, y, a, b, c);
            }
        }
    }

    public void run() throws IOException {
        in = new BufferedReader(new InputStreamReader(System.in));
        out = new PrintWriter(System.out);
        eat("");
        solve();
        out.close();
        in.close();
    }

    void eat(String s) {
        st = new StringTokenizer(s);
    }

    String next() throws IOException {
        while (!st.hasMoreTokens()) {
            String line = in.readLine();
            if (line == null) {
                return null;
            }
            eat(line);
        }
        return st.nextToken();
    }

    int nextInt() throws IOException {
        return Integer.parseInt(next());
    }

    long nextLong() throws IOException {
        return Long.parseLong(next());
    }

    double nextDouble() throws IOException {
        return Double.parseDouble(next());
    }

    public static void main(String[] args) throws IOException {
        new C().run();
    }
}