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.nio.*;
import java.util.regex.*;
import java.text.*;
import java.math.*;
import java.awt.geom.*;
import static java.lang.Math.*;
import static java.lang.Character.*;
import static java.lang.System.*;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.io.PrintWriter;
import java.math.BigInteger;
public class Main {
   static class pair{
       BigInteger x;
       BigInteger y;
       BigInteger z;
       pair()
       {
           x=BigInteger.ZERO;
           y=BigInteger.ZERO;
           z=BigInteger.ZERO;
       }
       pair(BigInteger x,BigInteger y,BigInteger z)
       {
           this.x=x;
           this.y=y;
           this.z=z;
       }
   }
   static int nextInt(BufferedInputStream x) throws Exception
   {
      int ret = 0;
      int c = x.read();
      while (c <= ' ') c = x.read();
      boolean neg = c == '-';
      if (neg) c = x.read();    
      do
      {
         ret = ret * 10 + c - '0';
         c = x.read();
      } while (c > ' ');
      if (neg) return -ret;
      return ret;
   }
 
   static pair egcd(BigInteger a,BigInteger b)
    {
        if(a.compareTo(b)>0){
        pair getf=egcd(b,a);
        return new pair(getf.x,getf.z,getf.y);
        }
    if(a.equals(BigInteger.ZERO))return new pair(b,BigInteger.ONE,BigInteger.ZERO); 
    pair get=egcd(b.mod(a),a);
    //return mp(mp(get.first.first,get.first.second-(b/a)*get.second),get.second);
    return new pair(get.x,get.z,get.y.subtract((b.divide(a)).multiply(get.z)));
   }
   static BigInteger INF=new BigInteger("5000000000000000000");
   public static void main(String []args) throws Exception
    {
    //BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
    //BufferedReader in=new BufferedReader(new FileReader(new File("Flow.in")));
    //BufferedInputStream bis=new BufferedInputStream(System.in);
    //BufferedInputStream bis=new BufferedInputStream(new FileInputStream(new File("Flow.in")));
    PrintStream out=new PrintStream(new BufferedOutputStream(System.out));
    BigInteger a,b,c;
    Scanner si=new Scanner(System.in);
    a=si.nextBigInteger();
    b=si.nextBigInteger();
    c=si.nextBigInteger();
        boolean sa=true;
    boolean sb=true;
    boolean sc=true;
    c=c.negate();
    if(a.compareTo(BigInteger.ZERO)<0){sa=false;a=a.negate();}
    if(b.compareTo(BigInteger.ZERO)<0){sb=false;b=b.negate();}
    if(c.compareTo(BigInteger.ZERO)<0){sc=false;c=c.negate();}
    pair get=egcd(a,b);
    if(!c.mod(get.x).equals(BigInteger.ZERO)){
        //assert(0);
        //puts("-1");
        out.println("-1");
    }
    else{
        c=c.divide(get.x);
        //if sc is false u need to control the left side 
        if(get.y.abs().multiply(c).compareTo(INF)>0||get.z.abs().multiply(c).compareTo(INF)>0){
            out.println("-1");
        }
        else{
            BigInteger x=get.z.multiply(c);
            //cout<<get.first.second<<endl;
            BigInteger y=get.y.multiply(c);
            //cout<<y<<endl;
            if(!sa)x=x.negate();
            if(!sb)y=y.negate();
            if(!sc){x=x.negate();y=y.negate();}
            out.println(x+" "+y);
        }
    }
    out.flush();
    //Scanner in=new Scanner(System.in);
    //Scanner in=new Scanner(new File("Flow.in"));
    }
}