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 Ruby (2.7.1) (judge verdict: Runtime Error)

require 'set'; require 'prime'; require 'pp'
INF=Float::INFINITY; MOD=10**9+7
x = gets.chomp.to_i

def divisors(n)
  n.prime_division.inject([1]) do |ary, (p, e)|
    (0..e).map{ |e1| p ** e1 }.product(ary).map{ |a, b| a * b }
  end.sort
end

def uhen(a, b)
  a2 = a*a
  b2 = b*b
  (a2 * a2) + (a2 * a * b) + (a2 * b2) + (a * b * b2) + (b2 * b2)
end

upper = 10**9
divs = divisors(x)
de = false
divs.each do |div|
  p '-----------------------------------------------' if de
  # p div
  2.times do |game_count|
    a = div
    b = 0
    a, b = b, a if game_count == 1
    while true
      a5b5 = a**5 - b**5 # (a-b) * uhen(a,b)
      p [a,b,a5b5] if de
      if a5b5 == x
        puts [a,b].join(' ')
        exit
      elsif a5b5 < -upper || upper < a5b5
        break
      else
        a += 1
        b += 1
      end
    end

    a = div
    b = 0
    a, b = b, a if game_count == 1
    while true
      a5b5 = a**5 - b**5 # (a-b) * uhen(a,b)
      p [a,b,a5b5] if de
      if a5b5 == x
        puts [a,b].join(' ')
        exit
      elsif a5b5 < -upper || upper < a5b5
        break
      else
        a -= 1
        b -= 1
      end
    end
  end
end
raise