#include <bits/stdc++.h>
using namespace std;
vector<int> vec;
bool pr(int x) {
  for (int i = 2; i * i <= x; i++)
    if (!(x % i)) return 0;
  return 1;
}
string func(string s, int n) {
  vector<int> v[3], vec;
  int cnt = 0;
  while (n) {
    int d = (n % 10);
    n /= 10;
    int c = 0;
    for (int i = (int)s.size() - 1; i >= 0; i--) {
      int p = (s[i] - '0') * d + c;
      v[cnt].push_back(p % 10);
      c = p / 10;
    }
    if (c) v[cnt].push_back(c);
    cnt++;
    s += '0';
  }
  int m = 0;
  for (int i = 0; i < cnt; i++) m = max(m, (int)v[i].size());
  for (int i = 0; i < cnt; i++)
    while (v[i].size() < m) v[i].push_back(0);
  int c = 0;
  for (int i = 0; i < m; i++) {
    int p = c;
    for (int j = 0; j < cnt; j++) p += v[j][i];
    vec.push_back(p % 10);
    c = p / 10;
  }
  if (c) vec.push_back(c);
  string str = "";
  for (int i = (int)vec.size() - 1; i >= 0; i--) str += '0' + vec[i];
  return str;
}
int main() {
  int n;
  cin >> n;
  if (n == 2) {
    cout << -1 << endl;
    return 0;
  }
  string lst = "1";
  for (int i = 3; vec.size() < n - 1; i += 2)
    if (pr(i)) vec.push_back(i), lst = func(lst, i);
  for (int i = 0; i < n - 1; i++) cout << 2 * vec[i] << endl;
  cout << lst << endl;
  return 0;
}
