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:
/**
 * ******* Created on 19/9/19 3:34 AM*******
 */

import java.io.*;
import java.util.*;

public class C7 {
    final static class Pair{
        long a;
        long b;
        long c;
        public Pair(long a, long b, long c){
            this.a = a;
            this.b =b;
            this.c =c;
        }
    }
    public static void main(String[] args) throws IOException {
        try (Input input = new StandardInput(); PrintWriter writer = new PrintWriter(System.out)) {
            long a = input.nextLong();
            long b = input.nextLong();
            long c = input.nextLong();

            Pair gcd =extendedGCD(a,b);
            if(-c% gcd.c !=0){
                System.out.println("-1");
            }else{
                long k = (-c)/gcd.c;
                System.out.println(k*gcd.a +" "+k*gcd.b);
            }
            //System.out.println(p.a +" "+p.b);
        }
    }

    private static Pair extendedGCD(long a, long b) {

        if (b == 0) {
            return new Pair(1,0,a);
        }

        Pair p = extendedGCD (b, a%b);
        long t = p.a;
        p.a = p.b;
        p.b = t - a/b*p.b;
        return p;
    }

    interface Input extends Closeable {
        String next() throws IOException;

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

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

        default double nextDouble() throws IOException {
            return Double.parseDouble(next());
        }

        default int[] readIntArray() throws IOException {
            return readIntArray(nextInt());
        }

        default int[] readIntArray(int size) throws IOException {
            int[] array = new int[size];
            for (int i = 0; i < array.length; i++) {
                array[i] = nextInt();
            }
            return array;
        }

        default long[] readLongArray(int size) throws IOException {
            long[] array = new long[size];
            for (int i = 0; i < array.length; i++) {
                array[i] = nextLong();
            }
            return array;
        }
    }

    private static class StandardInput implements Input {
        private final BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

        private StringTokenizer stringTokenizer;

        @Override
        public void close() throws IOException {
            reader.close();
        }

        @Override
        public String next() throws IOException {
            if (stringTokenizer == null || !stringTokenizer.hasMoreTokens()) {
                stringTokenizer = new StringTokenizer(reader.readLine());
            }
            return stringTokenizer.nextToken();
        }
    }
}