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.StringTokenizer;

/**
 * _7C
 * O(log(max(a, b))) arithmetic operations
 * θ(1) space
 *
 * @author artyom
 */
public class _7C implements Runnable {
    private BufferedReader in;
    private PrintStream out;
    private StringTokenizer tok;

    private void solve() throws IOException {
        // Solving ax + by + c = 0
        long a = nextLong(), b = nextLong(), c = nextLong();
        if (a == 0) {
            out.print(c % b == 0 ? "0 " + (-c / b) : -1);
            return;
        }
        long[] t = extendedEuclid(b, a);
        // t[0] = gcd(a, b)
        // t[1] = multiplicative inverse of b modulo a
        if (c % t[0] != 0) {
            out.print(-1);
            return;
        }
        a /= t[0];
        b /= t[0];
        c /= t[0];
        out.print(BigInteger.valueOf(b * c).multiply(BigInteger.valueOf(t[1])).subtract(BigInteger.valueOf(c)).divide(BigInteger.valueOf(a)) + " " + (-c * t[1]));
    }

    //--------------------------------------------------------------
    public static void main(String[] args) {
        new _7C().run();
    }

    @Override
    public void run() {
        try {
            in = new BufferedReader(new InputStreamReader(System.in));
            out = System.out;
            tok = null;
            solve();
            in.close();
        } catch (IOException e) {
            System.exit(0);
        }
    }

    private String nextToken() throws IOException {
        while (tok == null || !tok.hasMoreTokens()) {
            tok = new StringTokenizer(in.readLine());
        }
        return tok.nextToken();
    }

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

    private static long[] extendedEuclid(long a, long b) {
        if (b == 0) {
            return new long[]{a, 1, 0};
        }
        long[] res = extendedEuclid(b, a % b);
        long temp = res[1];
        res[1] = res[2];
        res[2] = temp - (a / b) * res[2];
        return res;
    }
}