#include <iostream>
#include <vector>
#include <cmath>
#include <list>
using namespace std;
bool isPrim(int num){
if(num == 1 || num == 0){
return false;
}else if(num == 2){
return true;
}else{
for(int i = 2; i <= sqrt(num); ++i){
if(num % i == 0){
return false; // 能够被其中一个整除,就不是素数
}
}
return true;
}
}
int main(){
int n;
cin>>n;
vector<int> res; // 存放所有的素数
list<pair<int,int>> res_value;
int min = INT32_MAX;
for(int i = 0; i < n; ++i){
if(isPrim(i)){
res.push_back(i); // 将n范围内的素数都插入到res中
}
}
// 找到两个,并且和等于m的素数,差值的绝对值最小的
for(int i = 0; i < res.size(); ++i){
for(int j = i; j < res.size(); ++j){
int sum = res[i] + res[j];
int gap = abs(res[j] - res[i]);
if(sum == n && gap < min){
min = gap;
res_value.push_front({res[i],res[j]});
}
}
}
auto it = res_value.begin();
cout<<it->first<<endl;
cout<<it->second<<endl;
return 0;
}