Problem: One way to create a task is to learn from math. You can generate some random math statement or modify some theorems to get something new and build a new task from that.

For example, there is a statement called the "Goldbach's conjecture". It says: "each even number no less than four can be expressed as the sum of two primes". Let's modify it. How about a statement like that: "each integer no less than 12 can be expressed as the sum of two composite numbers." Not like the Goldbach's conjecture, I can prove this theorem.

You are given an integer n no less than 12, express it as a sum of two composite numbers.

Input

The only line contains an integer n (12 ≤ n ≤ 106).

Output

Output two composite integers x and y (1 < x, y < n) such that x + y = n. If there are multiple solutions, you can output any of them.

Examples

Input

12


Output

4 8


Input

15


Output

6 9


Input

23


Output

8 15


Input

1000000


Output

500000 500000

Note

In the first example, 12 = 4 + 8 and both 4, 8 are composite numbers. You can output "6 6" or "8 4" as well.

In the second example, 15 = 6 + 9. Note that you can't output "1 14" because 1 is not a composite number.

Solution (in JAVA):

Solution:
import java.io.*;
import java.util.Arrays;
import java.util.Scanner;
import java.util.Stack;

public class HackerEarth {

	public static void main(String[] args) throws NumberFormatException, IOException {
		// TODO Auto-generated method stub
		
		
	  /*	BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
	  	 
	        int n = Integer.parseInt(br.readLine());
	        int k = Integer.parseInt( br.readLine());
	        int  []  array =  new  int[n];
	        int counter = 0 ;
	        for(int  i =0 ; i <array.length ; i++)
	        {
	            array[i] = Integer.parseInt( br.readLine());
	        }
	        
	        
	        boolean check = false ;
	        
	        for (int i=0;;i++) {
				
	        	for(int j = 0 ;j<array.length ;j++)
	        	{
	        		if(array[j]>=k) 
	        			check =true ;
	        		else
	        			check =false ;
	        		
	            }
	        	
	        	if(check==false)
	        	{
	        		for(int j=0;j<array.length;j++)
	        			array[j]++;
	        		counter++;
	        	}
	        	else
	        		break ;
	        	
	        	
	        	}
	        
	      
	        	
	        	System.out.println("counter = " + counter);	        */
		
		
		
		   
		/*   Scanner s =  new Scanner(System.in);
		   int  number = s.nextInt() ;
	    
	        long counter = 0 ;
	        
	       
	        for(int x=0 ; x<number ;x++)
	        {
	        
	        	int  n =   s.nextInt() ; ;
		        long k =  s.nextInt() ;
		        long  []  array =  new  long[n];
		        array[0]=s.nextInt() ;
		        long min =  array[0];
		                  
	        for(int  i =1 ; i <array.length ; i++)
	        {
	            array[i] =  s.nextInt() ;
	            if(array[i]<min)
	            	min=array[i];
	        }
	        
	       
	         counter =  k - min;
	         if(counter<0)
	        	 counter=0;
	         System.out.println(counter);
		 
	        }*/
	        
	        
		   /*Scanner s = new Scanner(System.in);
	        int t = s.nextInt();
	        int n = s.nextInt();
	        long  []arr = new long[n];
	      
	        
	        for(int j=0;j<t;j++)
	        {	  long sum = 0 ;
	        for(int i=0;i<arr.length;i++)
	        {
	        	arr[i]=s.nextInt();
	            sum =  sum + 1 *  arr[i];
	        }
	         System.out.println(sum);
	        }
	         s.close();*/
		
		/*Scanner s = new Scanner(System.in);
           int n = s.nextInt();
           int  []  arr1 =  new int[n];
           int  []  arr2 =  new int[n];
           int sum = 0 ;
           for (int i = 0; i < arr1.length; i++) 
           {
        	   arr1[i]=s.nextInt();	
        	   
		   }
           for (int i = 0; i < arr2.length; i++)
           {
        	   arr2[i]=s.nextInt();
			
		   }
           for (int i = 0; i < arr2.length; i++) 
           {
			System.out.println(arr1[i]+arr2[i] + " ");
		   }
	       
	        s.close();*/
	/*	Scanner s = new Scanner(System.in);
        int n = s.nextInt();
        int  []  arr1 =  new int[n];
        
        for (int i = 0; i < arr1.length; i++) 
        {
     	   arr1[i]=s.nextInt();	
     	   
	    }
        int  ac = 0 ;
        int numsample = s.nextInt();
        for (int i = 0; i <numsample; i++) 
        {
     	  int a  =  s.nextInt();
     	  ac=0;
     	  
     	  for (int j = 0; j < arr1.length; j++) 
  			if(a==arr1[j])
  			{
  				ac++ ;
  			}
       	  
       	  if(ac==0)
       		  System.out.println("NOT PRESENT");
       	  else
  				System.out.println(ac);
		
     	  
        }
        
        s.close();*/
		/*Stack<Integer> S = new Stack<>();
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		Scanner sc = new Scanner(System.in);
		
		int  n = sc.nextInt();
		for (int i = 0; i <n; i++) {
			S.clear();
			int n1 = sc.nextInt();		
			int posses  = sc.nextInt();
			S.push(posses );
			int pass =  posses  ;
			
			for (int j = 0; j <n1; j++) {
				
				String s =sc.next();	
			
				if( s.charAt(0) =='P')
				{
					int a = sc.nextInt();
					S.push(a);
				}
				else
					{
					if(!S.isEmpty())
					{
						int temp =S.pop();
						int temp1 =S.pop();
						S.push(temp);
						S.push(temp1);
					}
					}
					 
						
					}
			int x = S.pop() ;
			S.push(x);
			System.out.println(  "Player " + x);
			}
			*/
		
		/*Scanner s = new Scanner(System.in);
        int n = s.nextInt();
        int odd = 0 ;
        int indexeven=-0;
        int even = 0 ;
        int indexodd = 0 ;
        
        int arr[] = new int[n+1] ;
        arr[0]=0;
     for (int i = 1; i < arr.length; i++) {
		arr[i]=s.nextInt() ;
     }
	
     for (int i = 1; i < arr.length; i++) {
		if(arr[i]%2==0)
		{
			even++;
			indexeven=i ;
		}
		else
		{
			odd++;
			indexodd = i ;
		}
			
	}
     if(even<odd)
    	 System.out.println(indexeven);
     else
    	 System.out.println(indexodd);*/
	
     
	/*	BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
			int n =  Integer.parseInt(br.readLine());
			String s =  br.readLine();
			int A = 0 ;
			int D = 0 ; 
			for (int i = 0; i < s.length(); i++) {
				if(s.charAt(i)=='A')
					A++;
				else
					D++ ;
			}
			
			if(A>D)
				System.out.println("Anton");
			else if (A<D)
				System.out.println("Danik");
			else
				System.out.println("Friendship");*/
		
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int n =  Integer.parseInt(br.readLine());
		
		int x =n/2 -1 ;
			int nn = 0 ;
			boolean isprime =false ;
		for (int i = 2; i <=n; i++) {
			if(!isnprime(i)&&! isnprime(n-i))
				{nn=i;
				break ;
				}
				}
			
		System.out.println(nn + " " + (n-nn));
		}
		
		
	
	
	public static boolean isnprime(int x)
	{
		boolean r=true;
		   for(int i=2;i<=x/2;i++)
		   {
		   
		    if(x%i==0)
			{
			 r=false;
			 break;
			}

		   }
		     if(r==true)
			return true;
			 else
				 return false;
	}
	
}