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

public class Main  implements Runnable {
//public static final String FileName = "test";
StreamTokenizer ST;      
PrintWriter out;      
BufferedReader br;   
Scanner in;
static final int inf = 1000000000+10;
static final double eps = 1e-8;

int nextInt() throws IOException{      
    ST.nextToken();      
    return (int)ST.nval;      
}
long nextLong() throws IOException{      
    ST.nextToken();      
    return (long)ST.nval;      
}      
String next() throws IOException{      
    ST.nextToken();      
    return ST.sval;      
}      
double nextD() throws IOException{      
    ST.nextToken();      
    return ST.nval;      
}      
public static void main(String[] args) throws IOException {       
   new Thread(new Main()).start();
//	new Main().run();
}

public void run()  {      
    try {
    	br = new BufferedReader(new InputStreamReader(System.in));
    	out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(System.out)));  	
    	
    	//br = new BufferedReader(new FileReader(new File(FileName+".in")));
    	//out = new PrintWriter(new BufferedWriter(new FileWriter(FileName+".out")));
    	//br = new BufferedReader(new FileReader(new File("input.txt")));
    	//out = new PrintWriter(new BufferedWriter(new FileWriter("output.txt")));
    	//in = new Scanner(br);
        ST = new StreamTokenizer(br);      
        solve();      
        out.close();
        //in.close();
        br.close();   
    }         
    catch (IOException e) {        
    	throw new IllegalStateException(e);       
    }      
}


long[] gcd(long a, long b) {
	long x1 = 0, y1 = 1, x2 = 1, y2 = 0;
	if (b<0) b = -b;
	while (b>0) {
		long t = a/b; 
		long r = a-t*b;
		long x = x2-t*x1;
		long y = y2-t*y1;
		x2 = x1; x1 = x;
		y2 = y1; y1 = y;
		a = b; b = r;
	}
	return new long[]{x2, y2, a};		
}
public void solve() throws IOException {
	long a = nextInt();
	long b = nextInt();
	long c = nextInt();
	if (a<0) {
		a *= -1;
		b *= -1;
		c *= -1;
	}
	if (a==0 && b<0) {
		b *= -1;
		c *= -1;
	}
	if (a>0) {
		long[] hz = gcd(a,b);
		long cc = (a-c%a)%a;
		long y = hz[1];
		long d = hz[2];
		if (b<0) y *= -1;
		if (cc%d!=0) {
			out.println(-1);
			return;
		}
		BigInteger Y = BigInteger.valueOf(cc/d).multiply(BigInteger.valueOf(y));
		BigInteger X = BigInteger.valueOf(c).add(BigInteger.valueOf(b).multiply(Y)).negate().divide(BigInteger.valueOf(a));
		out.println(X+" "+Y); 
		/*y *= cc/d;
		long x = -(c+b*y)/a;
		out.println(x+" "+y);
		out.println(a*x+b*y+c);*/
	} else {
		if (c%b==0) 
			out.println(0+" "+(-c/b));
		else 
			out.println(-1);
	}
	
}
}