Problem:
Score : 400 points

Problem Statement

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

Sample Input 1

33

Sample Output 1

2 -1

For A=2 and B=-1, A^5-B^5 = 33.

Sample Input 2

1

Sample Output 2

0 -1

Solution in C (GCC 9.2.1) (judge verdict: Runtime Error)

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>

#define rep(i,k,n) for(int (i)=(k);(i)<(n);(i)++)
#define max(a,b) (a)>(b)?(a):(b)
#define min(a,b) (a)<(b)?(a):(b)
#define abs(a) (a)>0 ?(a):-(a)
#define llong long long

int main(){
	llong X; scanf("%lld",&X);
	llong pow5[10000];
	int M;
	for(llong i=0;i<10000;i++){
		pow5[i]=i*i*i*i*i;
		if( pow5[i]>X ){
			M = i;
			break;
		}
		if( pow5[i]==X){
			printf("%lld 0",pow5[i]);
			return 0;
		}
	}
	llong A=M,B;
	int minus=0,plus=M;
	while(1){
		B = A*A*A*A*A-X;
		if( B>0 ){
			while(1){
				if( B==pow5[plus] ){
					printf("%lld %d",A,plus);
					return 0;
				}else if( B>pow5[plus] ) break;
				plus--;
			}
		}
		if( B<0 ){
			B = -B;
			while(1){
				if( B==pow5[minus] ){
					printf("%lld %d",A,-minus);
					return 0;
				}else if( B<pow5[minus] ) break;
				minus++;
			}
		}
		A--;
	}
	return 0;
}