#include <bits/stdc++.h>
using namespace std;
template <typename T>
inline bool upmin(T &x, T y) {
  return y < x ? x = y, 1 : 0;
}
template <typename T>
inline bool upmax(T &x, T y) {
  return x < y ? x = y, 1 : 0;
}
const long double eps = 1e-11;
const long double pi = acos(-1);
const int oo = 1 << 30;
const long long loo = 1ll << 62;
const int mods = 1e9 + 7;
const int MAXN = 1000005;
const int INF = 0x3f3f3f3f;
inline int read() {
  int f = 1, x = 0;
  char c = getchar();
  while (c < '0' || c > '9') {
    if (c == '-') f = -1;
    c = getchar();
  }
  while (c >= '0' && c <= '9') {
    x = (x << 3) + (x << 1) + (c ^ 48);
    c = getchar();
  }
  return x * f;
}
vector<int> Ans;
int n, Num = 0, cnt[10], prime[6] = {2, 3, 5, 7, 11, 13};
struct anode {
  int s, a[6];
  anode() { s = 1, memset(a, 0, sizeof a); }
  bool operator<(const anode &y) const { return s < y.s; }
} b[MAXN], ZR;
set<anode> V[10];
void dfs(int x, anode y) {
  if (x == 6) {
    b[++Num] = y;
    return;
  }
  for (int p = 1, num = 0; p * y.s <= n * n * 2; p *= prime[x], num++) {
    anode t = y;
    t.s *= p, t.a[x] = num;
    dfs(x + 1, t);
  }
}
signed main() {
  n = read(), dfs(0, ZR);
  for (int i = 1; i <= 5; i++) {
    Ans.clear();
    for (int j = 0; j <= 5; j++) V[j].clear(), cnt[j] = 0;
    for (int j = 1; j <= Num; j++) {
      bool flag = 1;
      for (int k = i + 1; k <= 5; k++)
        if (b[j].a[k]) flag = 0;
      if (flag) {
        for (int k = 0; k <= i; k++)
          if (b[j].a[k]) V[k].insert(b[j]);
      }
    }
    bool flag = 1;
    for (int j = 1; j <= n; j++) {
      int mn = INF, id = -1;
      for (int k = 0; k <= i; k++)
        if (!V[k].empty() && cnt[k] < mn) mn = cnt[k], id = k;
      if (id == -1) {
        flag = 0;
        break;
      }
      anode x = *V[id].rbegin();
      for (int k = 0; k <= i; k++)
        if (x.a[k]) V[k].erase(V[k].find(x)), cnt[k]++;
      Ans.push_back(x.s);
    }
    for (int j = 0; j <= i; j++)
      if (cnt[j] < (n + 1) / 2) flag = 0;
    if (flag) {
      for (auto v : Ans) printf("%d ", v);
      break;
    }
  }
  return 0;
}
