Problem: Today, Osama gave Fadi an integer X, and Fadi was wondering about the minimum possible value of max(a, b) such that LCM(a, b) equals X. Both a and b should be positive integers.

LCM(a, b) is the smallest positive integer that is divisible by both a and b. For example, LCM(6, 8) = 24, LCM(4, 12) = 12, LCM(2, 3) = 6.

Of course, Fadi immediately knew the answer. Can you be just like Fadi and find any such pair?

Input

The first and only line contains an integer X (1 ≤ X ≤ 10^{12}).

Output

Print two positive integers, a and b, such that the value of max(a, b) is minimum possible and LCM(a, b) equals X. If there are several possible such pairs, you can print any.

Examples

Input


2


Output


1 2


Input


6


Output


2 3


Input


4


Output


1 4


Input


1


Output


1 1

Solution (in PYTHON3):

Solution:
import math

def main():
    prime = []
    n = int(input())
    if n == 2:
        print(1, 2)
        return
    x = n
    two = 1
    while x % 2 == 0:
        x = x / 2
        two = two * 2
    prime.append(two)
        
    for i in range (3, int(math.floor(math.sqrt(n)))+1, 2):
        temp = 1
        while x % i == 0:
            x = x / i
            temp = temp * i
        if temp != 1:
            prime.append(temp)
        if i > x:
            break
    if x > 1:
        prime.append(x)
    previous = 1
    min = 1000000000000
    ansa = 1
    ansb = 1
    for i in range(int(math.pow(2,len(prime)))):
        a = 1
        b = 1
        j = 1
        x = i
        for value in prime:
            if (x - math.pow(2,j -1)) % math.pow(2, j) == 0:
                a = a * value
                x = x - math.pow(2,j -1)
            else:
                b = b * value
            j = j +1
        if min > max(a,b):
            ansa = a
            ansb = b
            min = max(a,b)
        
    print (int(ansa),int(ansb))

main()