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