#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;
}