#include <bits/stdc++.h>
using namespace std;
const int Maxk = 5e3 + 5;
const int Maxn = 5e7 + 5;
bool isp[Maxn];
int prime[Maxn], pcnt = 0, cnt, limit, k;
int a[Maxk], ind = 0, Count[Maxk];
void prework() {
  prime[0] = 2, prime[1] = 3, prime[2] = 5, prime[3] = 7, prime[4] = 11,
  prime[5] = 13, prime[6] = 17, pcnt = 7;
}
void dfs(int deep, int val) {
  if (deep == limit)
    a[ind++] = val;
  else
    for (; val <= 2 * k * k && ind < k; val *= prime[deep]) dfs(deep + 1, val);
}
bool check() {
  if (ind != k) return false;
  memset(Count, 0, sizeof(Count));
  for (int i = 0; i < k; i++)
    for (int j = 0; j < limit; j++)
      if (a[i] % prime[j] == 0) Count[j]++;
  for (int i = 0; i < limit; i++)
    if (Count[i] != 0 && Count[i] < (k + 1) / 2) return false;
  return true;
}
int main() {
  prework();
  cin >> k;
  for (limit = 1;; limit++) {
    ind = 0;
    dfs(0, 1);
    if (ind == k) break;
  }
  for (int i = 0; i < k; i++) {
    if (i != 0) cout << " ";
    cout << a[i];
  }
  cout << endl;
  return 0;
}
