"use strict"
function pow5(i) {
    return Math.pow(i , 5)
}
function main(arg) {
    const MAX_INT = Number.MAX_SAFE_INTEGER 
    // const MAX_INT = 10000
    let X = Number(arg.trim().split("\n")[0])
    // let list = []
    // for (let i = 0; i < 50000; i++) {
    //     let a = Math.pow(i , 5)
    //     list.push(a)
    //     if (a > Math.pow(10, 9)) {
    //         break
    //     }
    //     // console.log(Math.pow(i , 5))
    // }
    let finish = false
    for (let i = 0; i < MAX_INT; i++ ) {
        let A = pow5(i)
        // +
        for (let j = 0; j < MAX_INT; j++) {
            let B = pow5(j)
            if (A - B === X) {
                console.log([i, j].join(" "))
                finish = true
                break
            }
            if (j > 0) {
                let _B = pow5(j - 1)
                if (Math.abs(X - (A - B)) > Math.abs(X - (A - _B))) {
                    break
                }
            }
        }
        if (finish) return
        // -
        for (let j = 0; j < MAX_INT; j++) {
            let B = pow5(j) * -1
            if (A - B === X) {
                console.log([i, j * -1].join(" "))
                finish = true
                break
            }
            if (j > 0) {
                let _B = pow5(j - 1) * -1
                if (Math.abs(X - (A - B)) > Math.abs(X - (A - _B))) {
                    break
                }
            }
        }
        if (finish) return
    }
    // console.log()
}
main(require('fs').readFileSync('/dev/stdin', 'utf8'));