#include <bits/stdc++.h>
using namespace std;

int main(){
  int N;
  cin >> N;
  int cnt = 0;
  int tmp1 = 0;
  int tmp2 = 0;
  int tmp3 = 0;
  while(tmp1 <= 10000){
    tmp1 += 6;
    if((tmp1 % 5 != 0)&&(tmp1 <= 10000)){
      cout << tmp1 << " ";
      cnt++;
      if(cnt == N) break;
    }
    tmp2 += 10;
    if((tmp2 % 3 != 0)&&(tmp2 <= 10000)){
      cout << tmp2 << " ";
      cnt++;
      if(cnt == N) break;
    }
    tmp3 += 15; 
    if(tmp3 <= 10000){
      cout << tmp3 << " ";
      cnt++;
      if(cnt == N) break;
    }
  }
  cout << endl;
}
#include <bits/stdc++.h>
using namespace std;
typedef long long int ll;
typedef pair<ll,ll> P;
typedef vector<ll> VI;
typedef vector<VI> VVI;
#define REP(i,n) for(int i=0;i<(n);i++)
#define ALL(v) v.begin(),v.end()
constexpr ll MOD=1000000007;
constexpr ll INF=2e18;

int main(){
    int n; cin >> n;
    VI a; a.push_back(15);
    for(int i=2;i<=10000;i+=2){
        if(a.size()==n)
            break;
        if(i%5==0||i%3==0)
            a.push_back(i);
    }
    for(int i=45;i<=10000;i+=30){
        if(a.size()==n)
            break;
        a.push_back(i);
    }
    REP(i,n)REP(j,n){
        if(__gcd(a[i],a[j])==1||(i!=j&&a[i]==a[j])){
            cout << "No" << endl;
            return 0;
        }
    }
    ll g=0;
    REP(i,n){
        g=__gcd(g,a[i]);
    }
    if(g!=1||a.size()!=n){
        cout << "No" << endl;
        return 0;
    }
    for(auto i:a){
        cout << i << " ";
    }
    cout << endl;
    return 0;
}