# -*- coding: utf-8 -*-



N=eval(input())



#約数列挙

def make_divisors(n):

    divisors=[]

    for i in range(1, int(n**0.5)+1):

        if n%i==0:

            divisors.append(i)

            if i!=n/i:

                divisors.append(n/i)

    return divisors



def func(a,b):

    return a**5-b**5



L=make_divisors(N)

for yakusu in L:

    for a in range(1,10**3):

        b=a-yakusu

        ret=func(a,b)

        if ret==N:

            print(a,b)

            quit()

# -*- coding: utf-8 -*-



N=eval(input())



#約数列挙

def make_divisors(n):

    divisors=[]

    for i in range(1, int(n**0.5)+1):

        if n%i==0:

            divisors.append(i)

            if i!=n/i:

                divisors.append(n/i)

    return divisors



def func(a,b):

    return a**5-b**5



L=make_divisors(N)

for yakusu in L:

    for a in range(1,10**3):

        b=a-yakusu

        if func(a,b)==N:

            print(a,b)

            quit()

# -*- coding: utf-8 -*-
N = eval(input())
# 約数列挙
def make_divisors(n):
    divisors = []
    for i in range(1, int(n**0.5) + 1):
        if n % i == 0:
            divisors.append(i)
            if i != n / i:
                divisors.append(n / i)
    return divisors


def func(a, b):
    return a**5 - b**5


L = make_divisors(N)
for yakusu in L:
    for a in range(1, 10**3):
        b = a - yakusu
        ret = func(a, b)
        if ret == N:
            print(a, b)
            quit()

# -*- coding: utf-8 -*-
N = eval(input())
# 約数列挙
def make_divisors(n):
    divisors = []
    for i in range(1, int(n**0.5) + 1):
        if n % i == 0:
            divisors.append(i)
            if i != n / i:
                divisors.append(n / i)
    return divisors


def func(a, b):
    return a**5 - b**5


L = make_divisors(N)
for yakusu in L:
    for a in range(1, 10**3):
        b = a - yakusu
        if func(a, b) == N:
            print(a, b)
            quit()

-        ret = func(a, b) -        if ret == N: +        if func(a, b) == N: