#include <bits/stdc++.h>
using namespace std;
const int maxn = 5000 * 5000 * 2 + 2;
int mx;
short vis[maxn];
int p[5] = {2, 3, 5, 7, 11};
set<pair<int, int> > S;
vector<int> arr;
set<int> Se;
vector<int> nums;
int main() {
  int n;
  cin >> n;
  Se.insert(1);
  mx = 4;
  if (n > 2000) {
    mx = 5;
  }
  while (Se.size()) {
    auto it = Se.begin();
    int u = *it;
    nums.push_back(u);
    Se.erase(it);
    for (int i = 0; i < mx; i++) {
      if (p[i] * u > 2 * n * n) {
        break;
      }
      Se.insert(p[i] * u);
    }
  }
  for (auto it : nums) {
    int div = 0;
    for (int i = 0; i < mx; i++) {
      div += (it % p[i]) == 0;
    }
    if (div > 2 || n < 2000) S.insert(pair<int, int>(-div, it));
  }
  int cnt = 0;
  vector<int> ans;
  for (auto it : S) {
    cnt++;
    printf("%d%c", it.second, cnt == n ? '\n' : ' ');
    if (cnt == n) {
      break;
    }
  }
  return 0;
}
