import java.util.*;
public class Main {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
while(sc.hasNext()){
int n = sc.nextInt();
//如n=10, 遍历:5,6,7,8
//如n=20,差最小的两个素数为7、13,从(20/2=10)查询10前后的两个素数,差是最小的
// 从最接近的两个中位数开始处理判断
for(int i=n/2;i>=2;i--){
if(isPrime(i)&&isPrime(n-i)){
System.out.println(i);
System.out.println(n-i);
break;
}
}
}
}
public static boolean isPrime(int n){
//素数 除了1和它本身的数,都不能被整除,所以要从2 开始到小于n
for(int i=2;i<n;i++){
if(n%i==0){
return false;
}
}
return true;
}
}
public class Main {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
while(sc.hasNext()){
int n = sc.nextInt();
//如n=10, 遍历:5,6,7,8
//如n=20,差最小的两个素数为7、13,从(20/2=10)查询10前后的两个素数,差是最小的
// 从最接近的两个中位数开始处理判断
for(int i=n/2;i>=2;i--){
if(isPrime(i)&&isPrime(n-i)){
System.out.println(i);
System.out.println(n-i);
break;
}
}
}
}
public static boolean isPrime(int n){
//素数 除了1和它本身的数,都不能被整除,所以要从2 开始到小于n
for(int i=2;i<n;i++){
if(n%i==0){
return false;
}
}
return true;
}
}