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

// -*- coding:utf-8-unix -*-


use proconio::input;

// ABC086C - Traveling
// https://atcoder.jp/contests/abs/fasks/arc089_a
use itertools::Itertools;
use std::collections::HashMap;
fn main() {
/*     input! {
        n: usize,
        mut plan: [(i32, i32, i32); n],  // Vec<(i32, i32, i32)>
    }
 */
    input! {
        x: usize,
    }
    let xx = (x as f64).powf(0.2) as usize;
    let mut res = HashMap::new();
    let mut resv = vec![0;xx + 1] ;
    for i in 0..xx + 1 {
        res.insert(i.pow(5), i);
        resv[i] = i.pow(5);
    }
    for (i,v) in resv.iter().enumerate(){
        let jj = (*v as i32 - x as i32).abs();
        match res.get(&(jj as usize)) {
            Some(r) => {
                println!("{} {}",i,  -1 * *r as i64);
                return;
            }
            None => {
                match res.get(&(x + v)) {
                    Some(r) => {
                        println!("{} {}",*r as i64 , i as i64);
                        return;
                    }
                    None => ()
                }
            }
        } 
    }
}