#include <bits/stdc++.h>
using namespace std;
const long long mod = 1e9 + 7;
const long long INF = 4e18;
const int inf = 2e9;
const int N = 2 * 5000 * 5000 + 10;
int gcd(int a, int b) { return b ? gcd(b, a % b) : a; }
int lcm(int a, int b) { return a / gcd(a, b) * b; }
bitset<N> ans;
bool is[205];
vector<int> prime;
int main(void) {
  int i, j, k;
  scanf("%d", &k);
  int limit = 2 * k * k;
  memset(is, 1, sizeof(is));
  for (i = 2; i < 200; i++) {
    if (is[i]) {
      prime.push_back(i);
      for (j = i * i; j < 200; j += i) is[j] = 0;
    }
  }
  ans[1] = 1;
  int tot = 0;
  for (i = 0; i < prime.size(); ++i) {
    int now = prime[i];
    for (j = 1; j <= limit; ++j) {
      if (now * j > limit) break;
      if (ans[j]) {
        ans[now * j] = 1;
        tot++;
      }
    }
    if (tot >= k) break;
  }
  tot = 0;
  for (i = limit; i >= 2; --i) {
    if (tot == k) break;
    if (ans[i]) {
      printf("%d ", i);
      tot++;
    }
  }
  printf("\n");
  return 0;
}
