#include <bits/stdc++.h>   using namespace std;   int n;   bool check(int num) {     if (1 == num) return true;     for (int i = 2; i <= num / i; i++) {       if (num % i == 0) {         return false;       }     }     return true;   }   int main() {     cin >> n;     if (check(n)) {       printf( 1 n );       printf( %d n , n);     } else if (check(n - 2)) {       printf( 2 n );       printf( 2 %d n , n - 2);     } else if (check(n - 4)) {       printf( 3 n );       printf( 2 2 %d n , n - 4);     } else {       bool result = false;       int i, even;       int prime1, temp, prime2;       for (int num = 3; num < n / 3 + 10; num++) {         if (!check(num)) continue;         even = n - num;         for (prime1 = 3; prime1 <= even / 2; prime1 += 2) {           for (temp = 2; temp <= sqrt(prime1); temp++) {             if (prime1 % temp == 0) break;           }           if (temp > sqrt(prime1))             prime2 = even - prime1;           else             continue;           for (temp = 2; temp <= sqrt(prime2); temp++) {             if (prime2 % temp == 0) break;           }           if (temp > sqrt(prime2)) {             cout << 3 << endl << num <<     << prime1 <<     << prime2 << endl;             result = true;             break;           }         }         if (!result)           continue;         else           break;       }     }   }   