#include <bits/stdc++.h>
using namespace std;
bool is_prime[20000007], chck[20000007];
void prime_() {
  for (int i = 2; i < 20000007; ++i) {
    if (!chck[i]) {
      is_prime[i] = 1;
      for (int j = i; j < 20000007; j += i) {
        chck[j] = 1;
      }
    }
  }
}
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  long long n;
  prime_();
  cin >> n;
  for (long long i = n;; --i) {
    bool prime = true;
    for (long long j = 2; j <= sqrt(i + 1); ++j) {
      if (i % j == 0) {
        prime = false;
        break;
      }
    }
    if (prime) {
      if (i == n) {
        cout << 1 << endl;
        cout << i;
        break;
      } else if (abs(i - n) > 1) {
        if (abs(i - n) == 2) {
          cout << 2 << endl;
          cout << 2 << " " << i;
          break;
        } else {
          long long diff = abs(i - n);
          cout << 3 << endl;
          for (long long p = 2; p < diff; ++p) {
            if (is_prime[p] && is_prime[diff - p]) {
              cout << i << " " << p << " " << diff - p << endl;
              break;
            }
          }
        }
        break;
      }
    }
  }
  return 0;
}
