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

fun main(args: Array<String>){
    val x = next().toInt()
//    a^5 - b^5 = x
    var a = 0
    var b = 0
    var contS = 0
    var contE = 100

    fun checkAns(nowA:Int,nowB:Int):Int{
        if(calc(nowA) - calc(nowB) == x){
            return 0
        }
        if((calc(nowA*-1)) - (calc(nowB)) == x){
            return 1
        }
        if((calc(nowA)) - (calc(nowB*-1)) == x){
            return 2
        }
        if((calc(nowA*-1)) - (calc(nowB*-1)) == x){
            return 3
        }
        return -1
    }

    fun ans(ans:Int){
        when(ans){
            1->{ a*=-1 }
            2-> { b*=-1 }
            3-> {
                a*=-1
                b*=-1
            }
        }
    }
    var ok = true
    while(ok && contS < 100000){
        for(i in contS..contE){
            var cA = checkAns(a+i,b)
            if(cA != -1) {
                a+=i
                ans(cA)
                ok = !ok
                println("caseA $cA")
                break
            }
            var caseB = false
            for(i2 in contS..contE){
                var cA2 = checkAns(a,b+i2)
                if(cA2 != -1) {
                    b+=i2
                    ans(cA2)
                    ok = !ok
                    caseB = !caseB
                    break
                }
            }
            if(caseB){
                break
            }
            if(ok){
                a+=i
                b+=i
            }
        }

        contS+=100;contE+=100
    }
    println("$a $b")

}
fun next() = readLine()!!
fun nextIntList() = next().split(" ").map{ it.toInt() }
fun calc(int:Int):Int{
    var res = int
    repeat(4){
        res *= int
    }
    return res
}