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
{
	static Scanner scanner;
	static BufferedReader input;
	static PrintWriter pw;

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

	public void run()
	{
		try
		{
			boolean room311 = System.getProperty("ROOM_311") != null;
			input = new BufferedReader(room311 ? new FileReader("input.txt") : new InputStreamReader(System.in));
//			input = new BufferedReader(new FileReader("input.txt"));
//			input = new BufferedReader(new InputStreamReader(System.in));
			scanner = new Scanner(input);
//			pw = new PrintWriter(new File("output.txt"));
//			pw = new PrintWriter(new OutputStreamWriter(System.out));
			pw = new PrintWriter(room311 ? new FileWriter("output.txt") : new OutputStreamWriter(System.out));

			solve();

			pw.close();
		}
		catch(Exception e)
		{
			e.printStackTrace();
			System.exit(1);
		}
	}

	class xyd { BigInteger x, y, d; }

	xyd gcd(BigInteger a, BigInteger b) { // a * x + b * y = d = gcd(a, b)
		xyd z, z1;
		z = new xyd();
		if (b.compareTo(BigInteger.ZERO) == 0) {
			z.x = BigInteger.ONE;
			z.y = BigInteger.ZERO;
			z.d = a;
			return z;
		}
		z1 = gcd(b, a.mod(b));
		z.x = z1.y;                                             // x = y1
		z.y = z1.x.subtract((a.divide(b)).multiply(z1.y));      // y = x1 - (a / b) * y1
		z.d = z1.d;
		return z;
	}

	public void solve() throws Exception
	{
		BigInteger a = scanner.nextBigInteger();
		BigInteger b = scanner.nextBigInteger();
		BigInteger c = scanner.nextBigInteger();

		BigInteger t = a.abs().gcd(b.abs());
		a = a.divide(t);
		b = b.divide(t);
		BigInteger aa = BigInteger.ONE;
		if (a.compareTo(BigInteger.ZERO) < 0)
		{
			a = a.negate();
			aa = aa.negate();
		}
		BigInteger bb = BigInteger.ONE;
		if (b.compareTo(BigInteger.ZERO) < 0)
		{
			b = b.negate();
			bb = bb.negate();
		}
		if (c.mod(t).intValue() != 0)
		{
			pw.println("-1");
			return;
		}
		c = c.divide(t);
		c = c.negate();

		xyd z = gcd(a, b);
		pw.println(z.x.multiply(c).multiply(aa) + " " + z.y.multiply(c).multiply(bb));
	}
}