#include <bits/stdc++.h>
using namespace std;
int prime[500005];
vector<int> pr;
int ans[500005];
int n;
vector<vector<int> > adj(500005);
signed main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  pr.push_back(1);
  for (int j = 2; j < 500005; j++) {
    if (!prime[j]) pr.push_back(j);
    for (int k = j + j; k < 500005; k += j) {
      prime[k] = 1;
      adj[k].push_back(j);
    }
  }
  int n;
  cin >> n;
  memset(prime, 0, sizeof(prime));
  int cnt = 0;
  for (int i = 1; i <= n; i++) {
    for (auto j : pr) {
      if (j * i > n) break;
      if (i > 1 && j > i) break;
      if (prime[j * i]) continue;
      int fl = 0;
      int mu = j * i;
      for (auto l : adj[mu]) {
        if (l > i && prime[l]) {
          fl = 1;
          break;
        }
      }
      if (fl) continue;
      prime[mu] = 1;
      if (cnt) cout << i << " ";
      cnt++;
      if (cnt == n) break;
    }
    if (cnt == n) break;
  }
  return 0;
}
