#include <bits/stdc++.h>
using namespace std;
map<int, bool> vis;
vector<int> prime, ans;
inline void init() {
  vis.clear();
  for (int i = 2; i <= 10000; i++) {
    if (!vis[i]) {
      prime.push_back(i);
      for (int j = i + i; j <= 10000; j += i) vis[j] = 1;
    }
  }
}
int main() {
  int k;
  init();
  scanf("%d", &k);
  int Max = 2 * k * k;
  vis.clear();
  for (int i = 0; ans.size() < k; i++) {
    ans.push_back(prime[i]);
    vis[prime[i]] = 1;
    for (int j = 0; j < ans.size(); j++) {
      int tmp = ans[j] * prime[i];
      if (tmp <= Max) {
        if (!vis[tmp]) {
          vis[tmp] = 1;
          ans.push_back(tmp);
        }
      }
    }
  }
  for (int i = ans.size() - k; i < ans.size(); i++) printf("%d ", ans[i]);
  return 0;
}
