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 by ankeet on 8/8/16.
 */
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.StringTokenizer;

public class C7 {

    static FastReader in = null;
    static PrintWriter out = null;


    public static long[] ExtendedEuclidean(long a, long b)
    {
        long xp = 1, xn = 0;
        long yp = 0, yn = 1;
        while(b != 0)
        {
            long q = a / b;
            long r = a % b;

            long temp = b;
            b = a - b * q;
            a = temp;

            temp = xn;
            xn = xp - xn * q;
            xp = temp;

            temp = yn;
            yn = yp - yn * q;
            yp = temp;


        }
        return new long[]{xp, yp};
    }

    public static long gcd(long a, long b)
    {
        return b == 0? a : gcd(b, a%b);
    }
    public static void solve()
    {
        long A = in.nlong();
        long B = in.nlong();
        long C = in.nlong();
        long g = gcd(A, B);
        if(C == 0)
        {
            out.println("0 0");
        }
        else
        {
            if(A == 0)
            {
                if(C%B !=0)
                {
                    out.println(-1);
                }
                else
                {
                    out.println("0 " + (-C/B));
                }
            }
            else if(B == 0)
            {
                if(C%A != 0)
                {
                    out.println(-1);
                }
                else out.println((-C/A) + " 0");
            }
            else
            {
                //a != 0 and b != 0 and c!=0
                if(C%g != 0)
                {
                    out.println(-1);
                }
                else
                {
                    long[] uv = ExtendedEuclidean(A/g, B/g);
                    out.println((uv[0]*(-C/g)) + " " + (uv[1]*(-C/g)));
                }


            }
        }

    }

    public static void main(String[] args)
    {
        in = new FastReader(System.in);
        out = new PrintWriter(System.out);
        solve();
        out.flush();
        out.close();

    }

    static class FastReader {

        BufferedReader read;
        StringTokenizer tokenizer;

        public FastReader(InputStream in)
        {
            read = new BufferedReader(new InputStreamReader(in));
        }

        public String next()
        {
            while(tokenizer == null || !tokenizer.hasMoreTokens())
            {
                try{
                    tokenizer = new StringTokenizer(read.readLine());
                }catch(Exception e){
                    throw new RuntimeException(e);
                }
            }
            return tokenizer.nextToken();
        }

        public int nint()
        {
            return Integer.parseInt(next());
        }
        public long nlong()
        {
            return Long.parseLong(next());
        }
        public double ndouble()
        {
            return Double.parseDouble(next());
        }

        public int[] narr(int n)
        {
            int[] a = new int[n];
            for(int i=0; i<n; ++i)
            {
                a[i] = nint();
            }
            return a;
        }

        public long[] nlarr(int n)
        {
            long[] a = new long[n];
            for(int i=0; i<n; ++i)
            {
                a[i] = nlong();
            }
            return a;
        }
    }


}