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.*;
import java.math.BigInteger;
import java.util.*;

public class C implements Runnable {

    public static void main(String[] args) {
        new Thread(new C()).start();
    }

    BufferedReader br;
    StringTokenizer st;
    PrintWriter out;
    boolean eof = false;

    public void run() {
        Locale.setDefault(Locale.US);
        try {
            br = new BufferedReader(new InputStreamReader(System.in));
            out = new PrintWriter(System.out);
            solve();
            out.close();
        } catch (Throwable e) {
            e.printStackTrace();
            System.exit(239);
        }
    }

    String nextToken() {
        while (st == null || !st.hasMoreTokens()) {
            try {
                st = new StringTokenizer(br.readLine());
            } catch (Exception e) {
                eof = true;
                return "0";
            }
        }
        return st.nextToken();
    }

    int nextInt() {
        return Integer.parseInt(nextToken());
    }

    long nextLong() {
        return Long.parseLong(nextToken());
    }

    double nextDouble() {
        return Double.parseDouble(nextToken());
    }

    long x, y;

    long extendedGcd(long a, long b) {
        long x1 = 1, y1 = 0;
        long x2 = 0, y2 = 1;
        a = Math.abs(a);
        b = Math.abs(b);
        while (b != 0) {
            long q = a / b;
            long xx = x1, yy = y1;
            x1 = x2;
            y1 = y2;
            x2 = xx - q * x2;
            y2 = yy - q * y2;
            long t = b;
            b = a % b;
            a = t;
        }
        x = x1;
        y = y1;
        return a;
    }

    private void solve() throws IOException {
        // Random rand = new Random();
        // while (true) {
        long a = nextLong(), b = nextLong(), c = nextLong();
        // long a = rand.nextInt(), b = rand.nextInt(), c = rand.nextInt();
        if (a == 0 && b == 0)
            return;
        long d = extendedGcd(a, b);
        if (c % d != 0) {
            out.println(-1);
            return;
            // return;
        }
        if (b == 0) {
            out.println((-c / a) + " " + 0);
            return;
        }
        if (a == 0) {
            out.println(0 + " " + (-c / b));
            return;
        }
        BigInteger aold = BigInteger.valueOf(a);
        BigInteger bold = BigInteger.valueOf(b);
        long asign = Long.signum(a);
        long bsign = Long.signum(b);
        a = Math.abs(a);
        b = Math.abs(b);
        long q = c / d;
        BigInteger xx = BigInteger.valueOf(x).multiply(BigInteger.valueOf(q));
        BigInteger yy = BigInteger.valueOf(y).multiply(BigInteger.valueOf(q));
        BigInteger bb = BigInteger.valueOf(b);
        BigInteger aa = BigInteger.valueOf(a);
        BigInteger qq = xx.divide(bb);
        xx = xx.subtract(bb.multiply(qq));
        yy = yy.add(aa.multiply(qq));
        // if (!aa.multiply(xx).add(bb.multiply(yy)).equals(
        // BigInteger.valueOf(c))) {
        // System.err.println(xx + " " + yy);
        // System.err.println(aold + " " + bold + " " + c);
        // throw new AssertionError("FUCK");
        // }
        xx = xx.negate();
        yy = yy.negate();
        if (asign < 0)
            xx = xx.negate();
        if (bsign < 0)
            yy = yy.negate();
        BigInteger result = aold.multiply(xx).add(bold.multiply(yy)).add(
                BigInteger.valueOf(c));
        // System.err.println(result);
        // if (!result.equals(BigInteger.ZERO))
        // throw new AssertionError(aold + " " + bold + " " + c);
        out.println(xx + " " + yy);
        // }
    }
}