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