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 Rust (1.42.0) (judge verdict: Accepted)

use std::io;
use std::collections::HashMap;
use std::cmp::max;
use std::cmp::min;

fn main() {
    let mut buffer = String::new();
    io::stdin().read_line(&mut buffer).unwrap();
    let x: u32 = (&buffer[..buffer.len() - 1]).parse().unwrap();

    let mut set = HashMap::new();
    let mut a = 0;
    let (b, negative) = loop {
        let a5 = a * a * a * a * a;
        match set.get(&(max(x, a5) - min(x, a5))) {
            Some(&b) => break (b, a5 < x),
            None => set.insert(a5, a),
        };
        a += 1;
    };

    if negative {
        println!("{} -{}", a, b);
    } else {
        println!("{} {}", a, b);
    }
}