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)

#[allow(unused_imports)]
use itertools::Itertools;
#[allow(unused_imports)]
use num::Integer;
#[allow(unused_imports)]
use proconio::derive_readable;
use proconio::fastout;
use proconio::input;
#[allow(unused_imports)]
use proconio::marker::*;
#[allow(unused_imports)]
use std::cmp;

fn solve(x: i64) -> (i64, i64) {
  for a in 0i64.. {
    let pa = a.pow(5);
    if pa > x {
      break;
    }
    for b in 0i64.. {
      let pb = b.pow(5);
      if pb > x {
        break;
      }
      if pa + pb == x {
        return (a, -b);
      }
    }
  }
  for b in 0i64.. {
    let pb = b.pow(5);
    for k in 0i64.. {
      let pk = k.pow(5);
      if pk > x {
        break;
      }
      if (b + k).pow(5) - pb == x {
        return (b + k, b);
      }
    }
  }
  todo!()
}

#[fastout]
fn main() {
  input! {
    x: i64,
  }
  let (a, b) = solve(x);

  println!("{} {}", a, b);
}