#include <bits/stdc++.h>
using namespace std;
bool isPrime(int x) {
  if (x % 2 == 0) return false;
  for (int i = 3; i * i <= x; i += 2) {
    if (x % i == 0) return false;
  }
  return true;
}
void solve() {
  int m, n, i, j, k, l, s, t, u, v, w, x, y, z, ii, jj;
  int res = 0;
  scanf("%d", &x);
  if (isPrime(x)) {
    printf("1\n%d\n", x);
  } else {
    x -= 3;
    for (i = 3; 1; i += 2) {
      if (isPrime(i) && isPrime(x - i)) {
        printf("3\n3 %d %d\n", i, x - i);
        return;
      }
    }
  }
}
int main() {
  int i, T = 1;
  for (i = 0; i < T; i++) {
    solve();
  }
  return 0;
}
