#include <bits/stdc++.h>
using namespace std;
bool simple(int n) {
  for (int i = 2; i * i <= n; i++)
    if (n % i == 0) return false;
  return true;
}
pair<pair<int, int>, int> solve(int n) {
  if (simple(n - 4)) return make_pair(make_pair(2, 2), n - 4);
  int f = 0;
  for (int i = 3; i < 10000 && n - i > 2 && n - i > 3; i++)
    if (simple(n - i)) f = n - i;
  n -= f;
  for (int i = 3; i <= n - 3; i++)
    if (simple(i) && simple(n - i)) return make_pair(make_pair(f, i), n - i);
  assert(false);
}
int main() {
  int n;
  cin >> n;
  if (simple(n)) {
    cout << 1 << endl;
    cout << n << endl;
    return 0;
  }
  if (simple(n - 2)) {
    cout << 2 << endl;
    cout << 2 << " " << n - 2 << endl;
    return 0;
  }
  pair<pair<int, int>, int> ans = solve(n);
  cout << 3 << endl;
  cout << ans.first.first << " " << ans.first.second << " " << ans.second
       << endl;
  return 0;
}
