#include <bits/stdc++.h>
using namespace std;
int n;
bool lpf(int n) {
  for (int i = 2; i * i <= n; i++)
    if (n % i == 0) return false;
  return true;
}
int main() {
  while (~scanf("%d", &n)) {
    if (lpf(n)) {
      printf("1\n");
      printf("%d\n", n);
      continue;
    }
    if (lpf(n - 2)) {
      printf("2\n");
      printf("2 %d", n - 2);
      continue;
    }
    int k;
    for (int i = n - 3; i > 2; i--)
      if (lpf(i)) {
        k = i;
        break;
      }
    n -= k;
    int x;
    for (int i = 2; i <= n; i++) {
      if (lpf(i) && lpf(n - i)) {
        x = i;
        break;
      }
    }
    printf("3\n");
    printf("%d %d %d\n", k, x, n - x);
  }
  return 0;
}
