#include <bits/stdc++.h>
using namespace std;
const long long int N = 5 * 1e5 + 5;
long long int n;
long long int isPrime[N], bdiv[N];
multiset<long long int> s;
int32_t main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  for (long long int i = 1; i < N; i++) isPrime[i] = 1;
  for (long long int i = 2; i < N; i++) {
    if (!isPrime[i]) continue;
    for (long long int j = 2 * i; j < N; j += i) {
      isPrime[j] = 0;
    }
  }
  cin >> n;
  long long int primes = 0;
  for (long long int i = 1; i <= n; ++i) primes += isPrime[i];
  for (long long int i = 2; i <= primes; ++i) cout << 1 << ' ';
  for (long long int i = 1; i <= n; ++i) {
    if (isPrime[i]) continue;
    for (long long int j = 2; j * j <= i; ++j) {
      if (i % j == 0) {
        bdiv[i] = i / j;
        break;
      }
    }
    s.insert(bdiv[i]);
  }
  while (!s.empty()) {
    cout << *s.begin() << ' ';
    s.erase(s.begin());
  }
  return 0;
}
