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

/**
 * Created by HREN_VAM.
 */

public class C implements Runnable{

    BufferedReader in;
    PrintWriter out;
    StringTokenizer st;
    public static final String filename = "c";

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

    long x1;
    long y1;

    long gcd2(long a, long b){
        if(a == 0){
            x1 = 0; y1 = 1;
            return b;
        }
        long d = gcd2(b % a, a);
        long z = x1;
        x1 = y1 - (b / a) * x1;
        y1 = z;
        return d;
    }


    public void solve() throws IOException{
        long a = nextInt();
        long b = nextInt();
        long c = nextInt();

        if((c == 0)){
            out.println("0 0");
            return;
        }
        long g = gcd(Math.abs(a), Math.abs(b));
        if(Math.abs(c) % g != 0){
            out.println(-1);
            return;
        }
        a /= g;
        b /= g;
        c /= g;
        if((a == 0) || (b == 0)){
            if(a == 0)c *= b;
            if(b == 0)c *= a;
            out.println((-c) + " " + (-c));
            return;
        }
        if(Math.abs(a) < Math.abs(b)){
            gcd2(Math.abs(a), Math.abs(b));
        }else{
            gcd2(Math.abs(b), Math.abs(a));
            long temp = x1;
            x1 = y1;
            y1 = temp;
        }
        x1 *= Math.abs(a) / a;
        y1 *= Math.abs(b) / b;
        out.println((-c * x1) + " " + (-c * y1) );
    }

    public void run(){
        try{
            Locale.setDefault(Locale.US);
            in = new BufferedReader(new InputStreamReader(System.in));
            //in = new BufferedReader(new FileReader(filename + ".in"));
            out = new PrintWriter(System.out);
            //out = new PrintWriter(new FileWriter(filename + ".out"));
            st = new StringTokenizer("");
            solve();
            out.close();
        } catch(IOException e){
            throw new RuntimeException(e);
        }
    }

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

    public String nextToken() throws IOException{
        while(!st.hasMoreTokens()){
            st = new StringTokenizer(in.readLine());
        }
        return st.nextToken();
    }

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

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