#include <bits/stdc++.h>
bool isPrime(int x) {
  if (x <= 1) return false;
  for (int i = 2; i <= sqrt(x); ++i)
    if (x % i == 0) return false;
  return true;
}
int main() {
  std::ios::sync_with_stdio(0);
  std::cin.tie(0);
  std::cout.tie(0);
  int n;
  std::cin >> n;
  int a = 0;
  while (!isPrime(n)) --n, ++a;
  if (!a)
    std::cout << "1\n" << n;
  else if (isPrime(a))
    std::cout << "2\n" << n << ' ' << a;
  else
    for (int i = 1; i < a; ++i)
      if (isPrime(i) && isPrime(a - i)) {
        std::cout << "3\n" << n << ' ' << i << ' ' << a - i;
        return 0;
      }
}
