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

public class C0007 {

    public static void main(String args[]) throws Exception {
        new C0007();
    }

    C0007() throws Exception {
        PandaScanner sc = null;
        PrintWriter out = null;
        try {
            sc = new PandaScanner(System.in);
            out = new PrintWriter(System.out);
        } catch (Exception ignored) {
        }

        long a = sc.nextInt();
        long b = sc.nextInt();
        long c = -sc.nextInt();
        long g = gcd(b, a);
//        out.println("DEBUG " + c + " " + g);
        if (c % g != 0) {
            out.println("-1");
        }
        else {
            a /= g;
            b /= g;
            c /= g;
            long[] l = extendedGCD(a, b);
            out.println(l[0] * c + " " + l[1] * c);
        }

        out.close();
        System.exit(0);
    }

    long gcd(long a, long b) {
        if (b == 0) {
            return a;
        }
        return gcd(b, a % b);
    }

    long[] extendedGCD(long a, long b) {
        if (b == 0) {
            if (a < 0) {
                return new long[] {-1, 0};
            }
            else {
                return new long[] {1, 0};
            }
        }
        else {
            long q = a / b;
            long r = a - b * q;
            long[] st = extendedGCD(b, r);
            return new long[] {st[1], st[0] - q * st[1]};
        }
    }

    //The PandaScanner class, for Panda fast scanning!
    public class PandaScanner {
        BufferedReader br;
        StringTokenizer st;
        InputStream in;

        PandaScanner(InputStream in) throws Exception {
            br = new BufferedReader(new InputStreamReader(this.in = in));
        }

        public String next() throws Exception {
            if (st == null || !st.hasMoreTokens()) {
                st = new StringTokenizer(br.readLine().trim());
                return next();
            }
            return st.nextToken();
        }

        public boolean hasNext() throws Exception {
            return (st != null && st.hasMoreTokens()) || in.available() > 0;
        }

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

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