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

// const int mod=1e9+7;

// bool isPerfectSquare(long double x){
// 	if(x>=0){
// 		int sr=sqrt(x);
// 		return (sr*sr==x);
// 	}
// 	return false;
// }

// bool isExponentOfTwo(int n){
//     while(n%2==0){
//         n/=2;
//     }
//     return n==1;
// }

// int power(int x, int y){
//     int res = 1;
//     x = x % mod;
//     if (x == 0) return 0; 
//     while (y > 0){
//         if (y & 1)
//             res = (res*x) % mod;
//         y = y>>1;
//         x = (x*x) % mod;
//     }
//     return res;
// }
// int inv(int n){
//     return power(n,mod-2);
// }
 
// vector<int> fac;
// void factorial(int n){
//     fac.resize(n+1);
//     fac[0]=1;
//     for(int i=1;i<=n;i++){
//         fac[i]=(fac[i-1]*i)%mod;
//     }
// }
// vector<int> ifac;
// void ifactorial(int n){
//     ifac.resize(n+1);
//     for(int i=0;i<=n;i++){
//         ifac[i]=inv(fac[i]);
//     }
// }
// int ncr(int n,int r){
//     if(n<r)return 0;
//     if(r==0)return 1;
//     return (((fac[n]*ifac[r])%mod)*ifac[n-r])%mod;
// }
 
// vector<int> prime;
// void div(int n){
//     prime.resize(n+1,0);
//     prime[1]=1;
//     for(int i=2;i<=n;i++){
//         if(prime[i]==0){
//             for(int j=1;j*i<=n;j++){
//                 if(prime[i*j]==0)prime[j*i]=i;
//             }
//         }
//     }
// }

// int changingFun(int x,int y){
//     return (x+y); //res bhi change krna h......
// }

// const int N = 2e5;  // limit for array size
// int n;  // array size
// int t[2 * N];
 
// void build() {  // build the tree
//   for (int i = n - 1; i > 0; --i) t[i] = changingFun(t[i<<1] , t[i<<1|1]);
// }
 
// void modify(int p, int value) {  // set value at position p
//   for (t[p += n] = value; p > 1; p >>= 1) t[p>>1] = changingFun(t[p] , t[p^1]);
// }
 
// int query(int l, int r) {  // sum on interval [l, r)
//   int res = 0;
//   for (l += n, r += n; l < r; l >>= 1, r >>= 1) {
//     if (l&1) res = changingFun(res,t[l++]);
//     if (r&1) res =changingFun(res,t[--r]);
//   }
//   return res;
// }

void solve(){
    int n,i; cin>>n;
    int cnt;
    set<int> st;
    st.insert(6);
    st.insert(10);
    st.insert(15);
    cnt=3;
    i=2;
    while(i*6<=10000){
        if(st.size()>=n){
            break;
        }
        else{
            st.insert(i*6);
        }
        i++;
    }
    i=2;
    while(i*10<=10000){
        if(st.size()>=n){
            break;
        }
        else{
            st.insert(i*10);
        }
        i++;
    }
    i=2;
    while(i*15<=10000){
        if(st.size()>=n){
            break;
        }
        else{
            st.insert(i*15);
        }
        i++;
    }
    cnt=0;
    for(auto z:st){
        if(cnt>=n)break;
        cout<<z<<" "; cnt++;
    }
}
signed main(){
    // time_t start, end;
    // time(&start);
    cin.tie(NULL);
    ios_base::sync_with_stdio(false);
    // freopen("input.txt", "r", stdin); 
    // freopen("output.txt", "w", stdout);
    int tt=1,t=1; //cin>>tt;
    while(t<=tt){
        // cout<<"Case #"<<t<<": ";
        solve();
        cout<<"\n";
        t++;
    }
    // time(&end);
    // double time_taken = double(end - start);
    // cout << "Time taken by program is : " << fixed << time_taken << setprecision(5);
    // cout << " sec " << endl;
    return 0;
}
#include <bits/stdc++.h>
#define int long long
using pii=std::pair<int,int>;
using namespace std;

int n;
int32_t main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    cin >> n;
    vector<int> ans;
    ans.push_back(3 * 5 * 7);
    for(int i = 1; i <= 10'000; i++)
        if(ans.size() < n && (i % 6 == 0 || i % 10 == 0 || i % 14 == 0))
            ans.push_back(i);
    assert(ans.size() == n);
    int sumgcd = 0;
    for(int i = 0; i < ans.size(); i++)
    {
        for(int j = i + 1; j < ans.size(); j++)
            assert(__gcd(ans[i], ans[j]) > 1);
        sumgcd = __gcd(sumgcd, ans[i]);
    }
    assert(sumgcd == 1);
    for(auto x : ans)
        cout << x << " ";
    cout << "\n";
    return 0;
}