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 static java.lang.Math.min;
import java.util.*;
import java.io.*;
import java.math.*;

public class Solution implements Runnable
{
    
 //  fucking nigga
      private static long gcd(long a, long b) {
         return Math.abs(b)==0?a:gcd(b, a%b);
  }
        private static long[] extendedGcd(long a, long b) {
            if (a == 0) return new long[]{0, 1};
            if (b == 0) return new long[]{1, 0};
            
            long[] h = extendedGcd(b, a%b);
            
            return new long[]{h[1], h[0] - h[1] * (a / b)};
    }
     void solve() throws IOException{
         long a=readLong();
         long b=readLong();
         long c=-readLong();
         long g=gcd(a,b);
         if(c%g!=0){
             out.println(-1);
             return;
         }
         long[] h = extendedGcd(a, b);
         System.out.println(h[0] * c/g + " " + h[1] * c/g);
     }
        public static void main(String args[])
        {
                new Solution().run();
        }
        
        BufferedReader reader;
        PrintWriter out;
        StringTokenizer tokenizer;

        public void run()
        {
                try
                {
                        reader = new BufferedReader(new InputStreamReader(System.in));
                        tokenizer = null;
                        out = new PrintWriter(System.out);
                        solve();
                        reader.close();
                        out.close();                 
                }
                catch (Exception e)
                {
                        e.printStackTrace();
                        System.exit(1);
                }               
        }

        int readInt() throws IOException
        {
                return Integer.parseInt(readString());
        }

        long readLong() throws IOException
        {
                return Long.parseLong(readString());
        }

        double readDouble() throws IOException
        {
                return Double.parseDouble(readString());
        }

        BigInteger readBigInteger() throws IOException
        {
                return new BigInteger(readString());
        }

        String readString() throws IOException
        {
                while (tokenizer == null || !tokenizer.hasMoreTokens())
                {
                        tokenizer = new StringTokenizer(reader.readLine());
                }
                return tokenizer.nextToken();
        }
}