#include <iostream>
#include <vector>
#include <algorithm>
#include <map>
using namespace std;
// 判断一个 数 是否是素数
static bool isPrimeNmber(int n) {
bool isPrime = true;
for (int i = 2; i <= n / 2; i++) {
if (n % i == 0) {
isPrime = false;
break;
}
}
return isPrime;
}
// 计算出 2 到 n的所有素数
static vector<int> getAllPrimeNumber(int n) {
vector<int> arr;
for (int i = 2; i <= n; i++) {
if (isPrimeNmber(i)) {
arr.push_back(i);
}
}
return arr;
}
int main() {
int n;
while (cin >> n) {
vector<int> arr = getAllPrimeNumber(n);
map<int, vector<pair<int, int>>> dict;
for (auto i : arr) {
int num = n - i;
int dism = num - i;
if (num < i || dism < 0)break;
if (find(arr.begin(), arr.end(), num) != arr.end()) {
dict[dism] = { {i, num} };
}
}
/*for (auto k : dict) {
int key = k.first;
const auto& vec = k.second;
for (auto k : vec)
cout << k.first << " - " << k.second;
}*/
auto first_element = dict.begin();
const auto& first_value = first_element->second;
for (auto p : first_value) {
cout << p.first << endl;
cout << p.second << endl;
}
}
return 0;
}