#include <bits/stdc++.h>
using namespace std;
const long double e = 0.00000005;
const long double pi = 3.1415926535898;
inline int getint() {
  int val = 0;
  char c;
  while ((c = getchar()) && !(c >= '0' && c <= '9'))
    ;
  do {
    val = (val * 10) + c - '0';
  } while ((c = getchar()) && (c >= '0' && c <= '9'));
  return val;
}
int gcd(int i, int j) {
  if (j == 0)
    return i;
  else
    return gcd(j, i % j);
}
const int Y = 500000;
const int INF = 1000000;
int arr[Y + 10];
int main() {
  cin.tie(0);
  cout.tie(0);
  ios_base::sync_with_stdio(false);
  int n;
  cin >> n;
  fill(begin(arr), end(arr), 1);
  vector<int> ans;
  for (int i = 2; i <= n; ++i) {
    ans.push_back(arr[i]);
    if (true) {
      for (int j = i + i; j <= n; j += i) {
        arr[j] = i;
      }
    }
  }
  sort(ans.begin(), ans.end());
  for (auto x : ans) cout << x << " ";
  return 0;
}
