#include <bits/stdc++.h>
using namespace std;
int c[] = {2, 3, 5, 7, 11};
void test(vector<int> &v, int k) {
  return;
  int f[5] = {
      0,
  };
  for (int i = 0; i < v.size(); ++i) {
    if (v[i] % 2 == 0) ++f[0];
    if (v[i] % 3 == 0) ++f[1];
    if (v[i] % 5 == 0) ++f[2];
    if (v[i] % 7 == 0) ++f[3];
    if (v[i] % 11 == 0) ++f[4];
  }
  if (v.size() != k) {
    cout << "hehe" << endl;
    exit(0);
  }
  for (int i = 0; i < 5; ++i) {
    if (f[i] && (f[i] < k / 2)) {
      cout << "hehe" << endl;
      exit(0);
    }
  }
}
void gao(int k) {
  vector<int> v[32];
  for (int i0 = 0, j0 = 1; j0 <= 2 * k * k; i0 = 1, j0 *= 2) {
    for (int i1 = 0, j1 = j0; j1 <= 2 * k * k; i1 = 1, j1 *= 3) {
      for (int i2 = 0, j2 = j1; j2 <= 2 * k * k; i2 = 1, j2 *= 5) {
        for (int i3 = 0, j3 = j2; j3 <= 2 * k * k; i3 = 1, j3 *= 7) {
          for (int i4 = 0, j4 = j3; j4 <= 2 * k * k; i4 = 1, j4 *= 11) {
            int state =
                (i0 << 0) + (i1 << 1) + (i2 << 2) + (i3 << 3) + (i4 << 4);
            v[state].push_back(j4);
          }
        }
      }
    }
  }
  vector<int> ans;
  if (k <= 300) {
    for (int i = 0; (i < v[7].size()) && (i < k); ++i) {
      ans.push_back(v[7][i]);
    }
    for (int cnt = 0;; ++cnt) {
      if (ans.size() == k) break;
      if (cnt < v[3].size()) {
        ans.push_back(v[3][cnt]);
      }
      if (ans.size() == k) break;
      if (cnt < v[5].size()) {
        ans.push_back(v[5][cnt]);
      }
      if (ans.size() == k) break;
      if (cnt < v[6].size()) {
        ans.push_back(v[6][cnt]);
      }
    }
    test(ans, k);
  } else if (k < 1100) {
    for (int i = 0; (i < v[15].size()) && (i < k); ++i) {
      ans.push_back(v[15][i]);
    }
    for (int cnt = 0;; ++cnt) {
      if (ans.size() == k) break;
      if (cnt < v[15 - 1].size()) {
        ans.push_back(v[15 - 1][cnt]);
      }
      if (ans.size() == k) break;
      if (cnt < v[15 - 2].size()) {
        ans.push_back(v[15 - 2][cnt]);
      }
      if (ans.size() == k) break;
      if (cnt < v[15 - 4].size()) {
        ans.push_back(v[15 - 4][cnt]);
      }
      if (ans.size() == k) break;
      if (cnt < v[15 - 8].size()) {
        ans.push_back(v[15 - 8][cnt]);
      }
    }
    test(ans, k);
  } else {
    for (int i = 0; (i < v[31].size()) && (i < k); ++i) {
      ans.push_back(v[31][i]);
    }
    for (int cnt = 0; cnt < 10000; ++cnt) {
      if (ans.size() == k) break;
      if (cnt < v[31 - 1].size()) {
        ans.push_back(v[31 - 1][cnt]);
      }
      if (ans.size() == k) break;
      if (cnt < v[31 - 2].size()) {
        ans.push_back(v[31 - 2][cnt]);
      }
      if (ans.size() == k) break;
      if (cnt < v[31 - 4].size()) {
        ans.push_back(v[31 - 4][cnt]);
      }
      if (ans.size() == k) break;
      if (cnt < v[31 - 8].size()) {
        ans.push_back(v[31 - 8][cnt]);
      }
      if (ans.size() == k) break;
      if (cnt < v[31 - 16].size()) {
        ans.push_back(v[31 - 16][cnt]);
      }
    }
    for (int cnt = 0; cnt < 10000; ++cnt) {
      if (ans.size() == k) break;
      for (int i = 0; i < 5; ++i)
        for (int j = i + 1; j < 5; ++j) {
          if (ans.size() >= k) break;
          int state = 31 - (1 << i) - (1 << j);
          if (cnt < v[state].size()) {
            ans.push_back(v[state][cnt]);
          }
        }
    }
    test(ans, k);
  }
  for (int i = 0; i < k; ++i) {
    cout << ans[i] << ((i == k - 1) ? '\n' : ' ');
  }
}
int main() {
  int n;
  while (cin >> n) {
    gao(n);
  }
}
