import java.util.*;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNextInt()) { // 注意 while 处理多个 case
            int num = in.nextInt();
            for(int i=num/2;i<num;i++){
                if(isPrime(i)&&isPrime(num-i)){
                    System.out.println(num-i);
                    System.out.println(i);
                    return;//确保走出循环
                }
            }
        }
    }

    public static boolean isPrime(int n){
        for(int i=2;i<=Math.sqrt(n);i++){
            if(n%i==0){
                return false;
            }
        }
        return true;
    }
}
private static boolean isPrime(int num) {  
//谨记,涉及到素数,就是使用目标数与2到它本身的所有数分别整除,如果有能整除的,说明不是素数。1不在考虑范围。
//因为只能被1和本身整除的就是素数,能整除这之外的才不是素数。
for (int i = 2; i <= Math.sqrt(num); i++) {        
//对目标数开方后让它与从2->根号num的所有数分别整除,(包含开方后的数,比如9->3)如果能整除,        
//说明num除了1和本身还有其他因数,比如整除的那个数就是之一        
//可以不开方,但是开方的话不需要一直整除到num本身的位置,        
// 比如23,开方后接近5,随着i的递增,另一个因数会递减,在整除6的时候近似相当于整除4,        
// 前面已经算过了。因此涉及到乘法就使用开方来缩小遍历范围。        
if (num % i == 0) {            
return false;        
}  
}   
return true;
}