#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using ld = long double;
using matr = vector<vector<ll>>;
using dbl = long double;
using ui = unsigned int;
mt19937 rnd;
ll random(ll limit) {
  uniform_int_distribution<ll> uniform_dist(0, limit);
  return uniform_dist(rnd);
}
int max_p(int a, vector<int>& p) {
  int ans = 1;
  for (auto q : p) {
    if (a % q == 0) return a / q;
  }
}
int main() {
  rnd = mt19937(956231);
  ios::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  int n;
  cin >> n;
  vector<bool> x(n + 1, true);
  vector<int> p;
  for (int i = 2; i <= n; i++) {
    if (x[i]) {
      p.push_back(i);
      for (int j = i * 2; j <= n; j += i) {
        x[j] = false;
      }
    }
  }
  vector<int> num(n + 1);
  num[1] = 1;
  for (int i = 2; i <= n; i++) {
    if (x[i])
      num[1]++;
    else {
      int a = max_p(i, p);
      num[a]++;
    }
  }
  int s = 0;
  int i = 1;
  for (int t = 2; t <= n; t++) {
    while (i <= n && s < t) {
      s += num[i];
      i++;
    }
    cout << i - 1 << ' ';
  }
}
