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.InputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.StringTokenizer;
/**
 * 9:50 ~ 
 *
 */
public class Main {
	public static void main(String[] argv) {
		FastScanner scan = new FastScanner(System.in);
		PrintWriter out = new PrintWriter(System.out);
		
		long a = scan.nextLong();
		long b = scan.nextLong();
		long c = scan.nextLong() * -1;
		
		long aa,bb;
		if(a > b){
			aa = a; bb = b;
		} else {
			aa = b; bb = a;
		}
		
		if(bb == 0){
			if(c % aa == 0){
				if(a > b) out.println(c / aa + " 0" );
				else out.println("0 " + c / aa);
			} else {
				out.println(-1);
			}
			out.close();
			return;
		}
		
		long p = 1, q = 0;
		long r = 0, s = 1;
		long v = 1;
		while(bb != 0){
			long u = aa / bb;
			v = aa % bb;
			
			if(v == 0) break;
			
			long tr = r;
			long ts = s;
			r = p - u * r;
			s = q - u * s;
			p = tr;
			q = ts;
			aa = bb; bb = v;
		}
		if(c % bb == 0){
			r *= (c / bb);
			s *= (c / bb);
			if(a < b) out.println(s + " " + r);
			else out.println(r + " " + s);
		} else out.println(-1);
		out.close();
	}
	
	static class FastScanner {
		BufferedReader br;
		StringTokenizer st;

		FastScanner(InputStream is) {
			try {
				br = new BufferedReader(new InputStreamReader(is));
			} catch (Exception e) {
				e.printStackTrace();
			}
		}

		String next() {
			while (st == null || !st.hasMoreTokens()) {
				try {
					st = new StringTokenizer(br.readLine());
				} catch (Exception e) {
					return null;
				}
			}
			return st.nextToken();
		}

		int nextInt() {
			return Integer.parseInt(next());
		}

		long nextLong() {
			return Long.parseLong(next());
		}

		double nextDouble() {
			return Double.valueOf(next());
		}
	}
}