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.util.*;
import java.math.*;
/**
 * 
 * @author Erasyl Abenov (abenov.erasyl@gmail.com);
 * 
 */
public class Main {
    public static void main(String[] args) throws IOException {
        InputStream inputStream = System.in;
        OutputStream outputStream = System.out;
        InputReader in = new InputReader(inputStream);
            try (PrintWriter out = new PrintWriter(outputStream)) {
                TaskB solver = new TaskB();
                solver.solve(1, in, out);
            }
    }
}
class TaskB {
    private static long gcd(long a, long b){
        while (b != 0) {
            long t = a % b;
            a = b;
            b = t;
        }
        return a;
    }
    public void solve(int testNumber, InputReader in, PrintWriter out) throws IOException{
        long a = in.nextLong();
        long b = in.nextLong();
        long c = in.nextLong();
        long gcd = gcd(Math.abs(a), Math.abs(b));
        if(c%gcd != 0){
            out.println(-1);
            return;
        }
        a /= gcd;
        b /= gcd;
        c /= gcd;
        if(b == 0){
            long x = -c/a;
            out.println(x + " " + 0);
            return;
        }
        if(a == 0){
            long x = -c/b;
            out.println(0 + " " + x);
            return;
        }
        BigInteger x = new BigInteger(-c + "").multiply(new BigInteger(a + "").modInverse(new BigInteger(Math.abs(b) + ""))).mod(new BigInteger(Math.abs(b) + ""));
        BigInteger y = new BigInteger(-c + "").subtract(new BigInteger(a + "").multiply(x)).divide(new BigInteger(b + ""));
        
        out.println(x + " " + y);
    }
    private static BigInteger big(long n){
        return BigInteger.valueOf(n);
    }
} 


class InputReader {
    private final BufferedReader reader;
    private StringTokenizer tokenizer;
    public InputReader(InputStream stream) {
        reader = new BufferedReader(new InputStreamReader(stream));
        tokenizer = null;
    }
       
    public String nextLine() {
        try {
            return reader.readLine();
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }
       
    public String next() {
        while (tokenizer == null || !tokenizer.hasMoreTokens()) {
            tokenizer = new StringTokenizer(nextLine());
        }
        return tokenizer.nextToken();
    }
       
    public int nextInt() {
        return Integer.parseInt(next());
    }
    public BigInteger nextBigInteger(){
        return new BigInteger(next());
    }
    public BigDecimal nextBigDecimal(){
        return new BigDecimal(next());
    }
    public long nextLong() {
        return Long.parseLong(next());
    }
    public double nextDouble() {
        return Double.parseDouble(next());
    }
}