#include <bits/stdc++.h>
using namespace std;
long long prim[] = {2, 3, 5, 7, 11};
int cnts[] = {0, 0, 0, 0, 0};
long long limit, up, n;
vector<long long> ans;
void dfs(int id, long long cur) {
  if (id == limit)
    ans.push_back(cur);
  else {
    while (cur < up) {
      dfs(id + 1, cur);
      cur *= prim[id];
    }
  }
}
bool check() {
  ans.clear();
  dfs(0, 1);
  sort(ans.begin(), ans.end());
  reverse(ans.begin(), ans.end());
  if (ans.size() < n) return false;
  memset(cnts, 0, sizeof(cnts));
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < limit; j++)
      if (ans[i] % prim[j] == 0) cnts[j]++;
  }
  for (int j = 0; j < limit; j++)
    if (cnts[j] * 2 < n) return false;
  return true;
}
int main() {
  cin >> n;
  limit = 2;
  up = 2 * n * n;
  while (check() == false) limit++;
  for (int i = 0; i < n; i++)
    printf("%I64d%c", ans[i], i == n - 1 ? '\n' : ' ');
  return 0;
}
