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 Kotlin (1.3.71) (judge verdict: Accepted)

fun main() {
    val x = nextLong()
    if (x == 0L) {
        return println("0 0")
    }
    for (i in 1..x / 2) {
        if (x % i == 0L) {
            var a = i / 2
            var b = a - i
            while (a * a * a * a * a - b * b * b * b * b < x) {
                a++
                b++
            }
            if (a * a * a * a * a - b * b * b * b * b == x) {
                return println("$a $b")
            }
        }
    }
    var a = x / 2
    var b = a - x
    while (a * a * a * a * a - b * b * b * b * b < x) {
        a++
        b++
    }
    if (a * a * a * a * a - b * b * b * b * b == x) {
        return println("$a $b")
    }
}

val sc = java.util.Scanner(System.`in`)
fun next(): String = sc.next()
fun nextInt() = sc.nextInt()
fun next2Int() = Pair(nextInt(), nextInt())
fun next3Int() = Triple(nextInt(), nextInt(), nextInt())
fun nextIntArray(size: Int) = IntArray(size) { nextInt() }
fun nextLong() = sc.nextLong()
fun nextLine(): String = sc.nextLine()
fun nextList() = nextLine().split(" ")
fun printYesNo(isYes: Boolean) = println(if (isYes) "Yes" else "No")
fun printString(action: StringBuilder.() -> Unit) = println(buildString(action))