#include <bits/stdc++.h>
using namespace std;
long long int m = 1000000007;
long long int n1, n2 = 0, sum = 0;
long long int gcd(long long int a, long long int b) {
  return (b == 0) ? a : gcd(b, a % b);
}
bool compare(pair<string, long long int> p1, pair<string, long long int> p2) {
  if (p1.second != p2.second) {
    return p1.second > p2.second;
  } else
    return p1.first < p2.first;
}
signed main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  long long int t = 1;
  while (t--) {
    long long int n;
    cin >> n;
    bool prime[n + 2];
    memset(prime, true, sizeof(prime));
    for (long long int p = 2; p * p <= n + 1; p++) {
      if (prime[p] == true) {
        for (long long int i = p * p; i <= n + 1; i += p) prime[i] = false;
      }
    }
    if (n > 2)
      cout << 2 << "\n";
    else
      cout << 1 << "\n";
    for (long long int i = 2; i < n + 2; i++) {
      if (prime[i])
        cout << 1 << ' ';
      else
        cout << 2 << ' ';
    }
  }
  return 0;
}
