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.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;

public class ProblemC {

    static long extgcd(long a, long b, long[] xy) {
        long d = a;
        if (b != 0) {
            long t = xy[0];
            xy[0] = xy[1];
            xy[1] = t;
            d = extgcd(b, a % b, xy);
            t = xy[0];
            xy[0] = xy[1];
            xy[1] = t;
            xy[1] -= (a / b) * xy[0];
        } else {
            xy[0] = 1;
            xy[1] = 0;
        }
        return d;
    }
    
    static long gcd(long a, long b) {
        return (b == 0) ? a : gcd(b, a%b);
    }
    
    public static void main(String[] args) throws IOException {
        BufferedReader s = new BufferedReader(new InputStreamReader(System.in));
        PrintWriter out = new PrintWriter(System.out);
        
        String[] line = s.readLine().split(" ");
        long A = Long.valueOf(line[0]);
        long B = Long.valueOf(line[1]);
        long C = Long.valueOf(line[2]);
        if (A == 0) {
            if (B == 0) {
                if (C == 0) {
                    out.println("0 0");
                } else {
                    out.println("-1");
                }
            } else {
                if (C % B == 0) {
                    out.println("0 " + (-C / B));
                } else {
                    out.println(-1);
                }
            }
        } else {
            if (B == 0) {
                if (C % A == 0) {
                    out.println((-C / A) + " 0");
                } else {
                    out.println(-1);
                }
            } else {
                long gcd = gcd(Math.abs(A), Math.abs(B));
                if (C % gcd == 0) {
                    long[] nl = new long[2];
                    extgcd(Math.abs(A), Math.abs(B), nl);
                    long sa = Long.signum(A);
                    long sb = Long.signum(B);
                    out.println(((-C * nl[0] * sa) / gcd) + " " + ((-C * nl[1] * sb) / gcd));
                } else {
                    out.println(-1);
                }
                
            }
        }
        out.flush();
    }

    public static void debug(Object... os){
        System.err.println(Arrays.deepToString(os));
    }
}