#include<bits/stdc++.h>
using namespace std;
bool check(int n){
if(n < 2) return false;
for(int i = 2; i <= sqrt(n);++i){
if(n % i == 0) return false;
}
return true;
}
int main(){
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int n;
cin >> n;
if(check(n) == true){
cout <<"1\n"<<n;
return 0;
}
for(int i = n - 1; i >= 2;--i){
if(check(i) == true){
if(check(n-i) == true){
cout <<"2\n"<<i <<" "<<n-i;
return 0;
}else{
for(int j = 2; j < n- i;++j){
if(check(j) == true && check(n-i-j) == true){
cout <<"3\n"<<i <<" "<<j<<" " <<n-i-j;
return 0;
}
}
}
}
}
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKYm9vbCBjaGVjayhpbnQgbil7CglpZihuIDwgMikgcmV0dXJuIGZhbHNlOwoJZm9yKGludCBpID0gMjsgaSA8PSBzcXJ0KG4pOysraSl7CgkJaWYobiAlIGkgPT0gMCkgcmV0dXJuICBmYWxzZTsKCX0KCXJldHVybiB0cnVlOwp9CmludCBtYWluKCl7Cglpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKCWNpbi50aWUoTlVMTCk7CglpbnQgbjsKCWNpbiA+PiBuOwoJaWYoY2hlY2sobikgPT0gdHJ1ZSl7CgkJY291dCA8PCIxXG4iPDxuOwoJCXJldHVybiAwOwoJfQoJZm9yKGludCBpID0gbiAtIDE7IGkgPj0gMjstLWkpewoJCWlmKGNoZWNrKGkpID09IHRydWUpewoJCQkJaWYoY2hlY2sobi1pKSA9PSB0cnVlKXsKCQkJCQljb3V0IDw8IjJcbiI8PGkgPDwiICI8PG4taTsKCQkJCQlyZXR1cm4gMDsKCQkJCX1lbHNlewoJCQkJCWZvcihpbnQgaiA9IDI7IGogPCBuLSBpOysrail7CgkJCQkJCWlmKGNoZWNrKGopID09IHRydWUgJiYgY2hlY2sobi1pLWopID09IHRydWUpewoJCQkJCQkJY291dCA8PCIzXG4iPDxpIDw8IiAiPDxqPDwiICIgPDxuLWktajsKCQkJCQkJCXJldHVybiAwOwoJCQkJCX0KCQkJCX0KCQkJfQoJCX0KCX0KfQ==