#include <bits/stdc++.h>
using namespace std;
int isPrime(int a) {
  int i;
  if (a < 2) return 0;
  for (i = 2; i <= sqrt(a); i++) {
    if (a % i == 0) return 0;
  }
  return 1;
}
int main() {
  int n;
  scanf("%d", &n);
  if (isPrime(n)) {
    printf("1\n");
    printf("%d\n", n);
  } else if (isPrime(n - 2)) {
    printf("2\n");
    printf("2 %d\n", n - 2);
  } else if (isPrime(n - 4)) {
    printf("3\n");
    printf("2 2 %d\n", n - 4);
  } else {
    for (int i = n - 6; i >= 2; i -= 2) {
      if (isPrime(i)) {
        int t = n - i;
        for (int j = 3; j <= t / 2; j += 2) {
          if (isPrime(j) && isPrime(t - j)) {
            printf("3\n");
            printf("%d %d %d\n", i, j, t - j);
            return 0;
          }
        }
      }
    }
  }
  return 0;
}
