/*...................................................................*
 *............___..................___.....____...______......___....*
 *.../|....../...\........./|...../...\...|.............|..../...\...*
 *../.|...../.....\......./.|....|.....|..|.............|.../........*
 *....|....|.......|...../..|....|.....|..|............/...|.........*
 *....|....|.......|..../...|.....\___/...|___......../....|..___....*
 *....|....|.......|.../....|...../...\.......\....../.....|./...\...*
 *....|....|.......|../_____|__..|.....|.......|..../......|/.....\..*
 *....|.....\...../.........|....|.....|.......|.../........\...../..*
 *..__|__....\___/..........|.....\___/...\___/.../..........\___/...*
 *...................................................................*
 */
 
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define INF 1000000000000000000

int32_t main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);
    int tt=1;
    //cin >> tt;
    while(tt--)
    {
        int n;
        cin >> n;
        set<int> s;
        s.insert(6);
        s.insert(10);
        s.insert(15);
        for(int i=2;i<=10000/6;i++)
        {
            if(s.size()==n)
                break;
            s.insert(6*i);
        }
        for(int i=2;i<=10000/10;i++)
        {
            if(s.size()==n)
                break;
            s.insert(10*i);
        }
        for(int i=2;i<=10000/15;i++)
        {
            if(s.size()==n)
                break;
            s.insert(15*i);
        }
        assert(s.size()==n);
        for(auto it=s.begin();it!=s.end();it++)
            cout << *it << " ";
        cout << '\n';
    }
    return 0;
}
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
#define IOS std::ios::sync_with_stdio(false); cin.tie(NULL);cout.tie(NULL);
#define ll long long
using namespace std;
using namespace __gnu_pbds;
ll int mod=1e9+7;
typedef tree<ll int, null_type, less<ll int>, rb_tree_tag, tree_order_statistics_node_update> ordered_set;


ll int mul(ll int x, ll int y)
{
    return (x * 1ll * y) % mod;
}


ll int add(ll int x,ll int y)
{
    x += y;
    while(x >= mod) x -= mod;
    while(x < 0) x += mod;
    return x;
}


long long power(long long a, long long b,ll m) {
    a %= m;
    long long res = 1;
    while (b > 0) {
        if (b & 1)
            res = (res*a)%m;
        a =(a*a)%m;
        b >>= 1;
    }
    return res%m;
}


void query(ll int t,ll int i,ll int j,ll int x)
{
    cout<<"? "<<t<<" "<<i<<" "<<j<<" "<<x<<endl;
    cout.flush();
}

vector<ll int> pr;
bool prime[10000000];
void Sieve(ll int n) 
{ 
    memset(prime, true, sizeof(prime)); 
    prime[1]=false;
  
    for (int p=2; p*p<=n; p++) 
    { 
        if (prime[p] == true) 
        { 
            pr.push_back(p);
            for (int i=p*p; i<=n; i += p) 
                prime[i] = false; 
        } 
    } 
}


int main() {
    IOS;
    ll int n;
    cin>>n;
    cout<<6<<" "<<10<<" "<<15<<" ";
    n-=3;
    map<int,int>mp;
    for(int i=2;i*6<=10000 && n>0;i++)
    {
        if(mp.count(6*i))
        continue;
        cout<<6*i<<" ";
        mp[6*i]++;
        n--;
    }
    for(int i=2;i*10<=10000 && n>0;i++)
    {
        if(mp.count(10*i))
        continue;
        cout<<10*i<<" ";
        mp[10*i]++;
        n--;
    }
    for(int i=2;i*15<=10000 && n>0;i++)
    {
        if(mp.count(15*i))
        continue;
        cout<<15*i<<" ";
        mp[15*i]++;
        n--;
    }
    cout<<endl;
}
