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 JAVA):

Solution:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays; 
public class Main{
	static long __gcd(long a, long b)  
    {  
        // Everything divides 0  
        if (a == 0)  
        return b;  
        if (b == 0)  
        return a;  
          
        // base case  
        if (a == b)  
            return a;  
          
        // a is greater  
        if (a > b)  
            return __gcd(a%b, b);  
        return __gcd(a, b%a);  
    } 
      
    // Function to return the LCM of a and b 
    static long lcm(long a, long b) 
    { 
        return (a / __gcd(a, b) * b); 
    }
	public static void main(String[] args) throws IOException {
		// TODO Auto-generated method stub
		BufferedReader br= new BufferedReader(new InputStreamReader(System.in));
//		int cases=Integer.valueOf(br.readLine());
//		while(cases!=0)
//		{
//			cases--;
			long c=Long.valueOf(br.readLine());
			long ans =(long) Math.pow(10, 18); 
			String as="";
	        // To find the factors 
	        for (int i = 1; i <= Math.sqrt(c); i++)  
	        {
	            if (c % i == 0 && lcm(i, c / i) == c) 
	            { 
	                if(ans>Math.max(i,c/i))
	            	{
	                	ans =Math.max(i, c / i); 
	                	as=i+" "+(c/i);
	            	}
	            } 
	        } 
	        System.out.println(as);
//		}
	}

}