#include <bits/stdc++.h>
using namespace std;
bool isprime[500005];
void get_prime(int n) {
  isprime[1] = false;
  for (int i = 2; i <= n; i++) isprime[i] = true;
  for (int i = 2; i <= n; i++) {
    if (isprime[i]) {
      for (int j = i * 2; j <= n; j += i) {
        isprime[j] = false;
      }
    }
  }
}
int main() {
  vector<int> primes;
  get_prime(500000);
  int cnt = 0;
  for (int i = 1; i <= 500000; i++)
    if (isprime[i]) primes.push_back(i);
  int n;
  cin >> n;
  vector<bool> chk(n + 1, 0);
  int m = 1;
  chk[1] = 1;
  for (int i : primes)
    if (i <= n) chk[i] = 1, m++;
  int now = 1;
  for (int i = 2; i <= n; i++) {
    while (i > m) {
      now++;
      for (int prime : primes) {
        if ((long long)now * prime > n) break;
        chk[now * prime] = 1;
        m++;
        if (now % prime == 0) break;
      }
    }
    printf("%d ", now);
  }
  printf("\n");
  return 0;
}
