#include <bits/stdc++.h>
using namespace std;
const int N = 4e4 + 5;
int pr[N], ps = 0;
bool np[N];
bool check(int n) {
  if (n == 1 || n == 0) return false;
  for (int i = 0; pr[i] * pr[i] <= n; ++i)
    if (n % pr[i] == 0) return false;
  return true;
}
int main() {
  for (int i = 2; i < N; ++i)
    if (!np[i]) {
      pr[ps++] = i;
      for (int j = i + i; j < N; j += i) np[j] = 1;
    }
  int n;
  cin >> n;
  if (check(n)) {
    cout << "1\n" << n << endl;
    return 0;
  }
  for (int i = 0; i < ps && pr[i] <= n; ++i) {
    if (check(n - pr[i])) {
      cout << "2\n" << pr[i] << " " << n - pr[i] << endl;
      return 0;
    }
    if (pr[i] % 2 == 1 && check((n - pr[i]) / 2)) {
      cout << "3\n"
           << pr[i] << " " << (n - pr[i]) / 2 << " " << (n - pr[i]) / 2 << endl;
      return 0;
    }
  }
  cout << "lol nope\n";
  return 0;
}
