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

public class CodeForces7C{
	
	public static Coordinates erwGGT(long a, long b){
		if(b%a==0){
			return new Coordinates(1, 0);
		}
		else{
			if(a<0){
				Coordinates temp = erwGGT(-a, b);
				return new Coordinates(-temp.x, temp.y);
			}
			if(b<0){
				Coordinates temp = erwGGT(a, -b);
				return new Coordinates(temp.x, -temp.y);
			}
			Coordinates temp = erwGGT(b%a, a);
			return new Coordinates(temp.y-(b/a)*temp.x, temp.x);
		}
	}
	
	public static long ggt(long a, long b){
		while(b!=0){
			a=a%b;
			long temp = a;
			a = b;
			b = temp;
		}
		return a;
	}
	
	public static void main(String[] args) {
		Scanner read = new Scanner(System.in);
		long a = read.nextLong();
		long b = read.nextLong();
		long c = read.nextLong();
		read.close();
		//normalisation a>=0
		if(a<0){
			a=-a;
			b=-b;
			c=-c;
		}
		//case 0: c==0
		if(c==0){
			System.out.println("0 0");
			return;
		}
		//case 1: a==0
		if(a==0){
			if(c%b==0){
				System.out.println("0 "+(-c/b));
			}
			else{
				System.out.println("-1");
			}
			return;
		}
		//case 2: b==0
		if(b==0){
			if(c%a==0){
				System.out.println((-c/a)+" 0");
			}
			else{
				System.out.println("-1");
			}
			return;
		}
		long xplus=0;
		long yplus=0;
		long origc=c;
		long x=0, y=0;
		Coordinates solution;
		//case 3: a>0; b>0;
		if(b>0){
			if(a>b){
				if(c>0){
					xplus=(c+a-1)/a;
				}
				else{
					xplus=-(c/a);
				}
				c=-c+xplus*a;
				if(c==origc){
					xplus=0;
				}
			}
			else{
				if(c>0){
					yplus=(c+b-1)/b;
				}
				else{
					yplus=-(c/b);
				}
				c=-c+yplus*b;
				if(c==origc){
					yplus=0;
				}
			}
			if(c==0){
				System.out.println((-xplus)+" "+(-yplus));
			}
			else{
				solution=erwGGT(a, b);
				long ggt=ggt(a, b);
				x=(solution.x*(c/ggt)-xplus);
				y=(solution.y*(c/ggt)-yplus);
				if(c%ggt==0){
					System.out.println(x+" "+y);
				}
				else{
					System.out.println("-1");
				}
			}
			//System.out.println(a*x+b*y+origc);
			return;
		}
		//case 4: a>0; b<0
		if(b<0){
			long modb=Math.abs(b);
			if(a>=modb){
				if(c>0){
					xplus=(c+a-1)/a;
				}
				else{
					xplus=-(c/a);
				}
				c=-c+xplus*a;
				if(c==origc){
					xplus=0;
				}
			}
			else{
				if(c>0){
					yplus=-((c+modb-1)/modb);
				}
				else{
					yplus=c/modb;
				}
				c=-c+yplus*b;
			}
			if(c==0){
				System.out.println((-xplus)+" "+(-yplus));
			}
			else{
				solution=erwGGT(a, b);
				long ggt=ggt(a, modb);
				x=(solution.x*(c/ggt)-xplus);
				y=(solution.y*(c/ggt)-yplus);
				if(c%ggt==0){
					System.out.println(x+" "+y);
				}
				else{
					System.out.println("-1");
				}
			}
			//System.out.println(a*x+"+"+b*y+"+"+origc+"="+(a*x+b*y+origc));
			return;
		}
	}
}

class Coordinates{
	long x;
	long y;
	Coordinates(long x, long y){
		this.x=x;
		this.y=y;
	}
	
	public String toString(){
		return this.x+" "+this.y;
	}
}


/*
Tests
-957757861 308710346 45337024
587450634832960 1822535171726016
*/