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: Wrong Answer)

#include <algorithm>
#include <cmath>
#include <cstdint>
#include <cstdio>
#include <iomanip>
#include <iostream>
#include <map>
#include <queue>
#include <set>
#include <stack>
#include <string>
#include <vector>
using namespace std;
#define rep(i, n) for(int(i) = 0; (i) < (n); (i)++)
#define FOR(i, m, n) for(int(i) = (m); (i) < (n); (i)++)
#define All(v) (v).begin(), (v).end()
#define pb push_back
#define MP(a, b) make_pair((a), (b))
using ll = long long;
using pii = pair<int, int>;
using pll = pair<ll, ll>;
const int INF = 1 << 30;
const ll LINF = 1LL << 60;
const int MOD = 1e9 + 7;

int main() {
    ll X;
    cin >> X;
    for(ll i = 1; i <= 100; i++) {
        for(ll j = 0; j <= 100; j++) {
            if(i * i * i * i * i - j * j * j * j * j == X) {
                cout << i << " " << j << endl;
                return 0;
            } else if(i * i * i * i * i + j * j * j * j * j == X) {
                cout << i << " " << -j << endl;
                return 0;

            } else if(-i * i * i * i * i + j * j * j * j * j == X) {
                cout << -i << " " << -j << endl;
                return 0;

            } else if(-i * i * i * i * i - j * j * j * j * j == X) {
                cout << -i << " " << j << endl;
                return 0;
            }
        }
    }
    return 0;
}