Problem: Give a pair of integers (A, B) such that A^5-B^5 = X. It is guaranteed that there exists such a pair for the given integer X.

Constraints

* 1 \leq X \leq 10^9
* X is an integer.
* There exists a pair of integers (A, B) satisfying the condition in Problem Statement.

Input

Input is given from Standard Input in the following format:


X


Output

Print A and B, with space in between. If there are multiple pairs of integers (A, B) satisfying the condition, you may print any of them.


A B

Output

Print A and B, with space in between. If there are multiple pairs of integers (A, B) satisfying the condition, you may print any of them.


A B

Examples

Input

33


Output

2 -1


Input

1


Output

0 -1

Solution (in JAVA):

Solution:
import java.util.*;
import java.io.*;
import java.nio.charset.StandardCharsets;

public class Main {
	long X;
	Map<Integer, Long> map;
	int A, B;

	public static void main(String[] args) throws IOException {
		InputStreamReader reader = new InputStreamReader(System.in, StandardCharsets.UTF_8);
		BufferedReader in = new BufferedReader(reader);
		Main ins = new Main(in);
		ins.calc();
		ins.showResult();
	}

	long pow(int val) {
		long v = (long) val;
		return v * v * v * v * v;
	}

	Main(BufferedReader in) throws IOException {
		String[] tokens = in.readLine().split(" ");
		X = Long.parseLong(tokens[0]);
		map = new HashMap<>();
		for (int i = -200; i <= 200; ++i) {
			long val = pow(i);
			map.put(i, val);
		}
	}

	void calc() {
		List<Integer> keys = new ArrayList<>();
		keys.addAll(map.keySet());
		for (int i = 0; i < keys.size(); ++i) {
			long aPow = map.get(keys.get(i));
			for (int j = 0; j < keys.size(); ++j) {
				long bPow = map.get(keys.get(j));
				if (aPow - bPow == X) {
					A = keys.get(i);
					B = keys.get(j);
					return;
				}
			}
		}
	}

	void showResult() {
		System.out.println(A + " " + B);
	}
}