#include<bits/stdc++.h>
#define LL long long
#define pb push_back
#define pii pair<int,int> 
using namespace std;

const int mn=3006;
int n,a[mn];

int main()
{
    scanf("%d",&n);
    a[1]=6,a[2]=10,a[3]=15;a[0]=3;
    for(int i=1;i<=10000;++i) {
        if(i==6||i==10||i==15) continue;
        if(i%6==0||i%10==0||i%15==0) a[++a[0]]=i;
    }
    for(int i=1;i<=n;++i) cout<<a[i]<<" ";
}
#include <bits/stdc++.h>
#define REP(i, nn ) for(int i = 0 ; i < (int) nn; i++)
#define REPS(i, ss, nn ) for(int i = ss ; i < (int) nn; i++)
#define REV(i, ss, nn ) for(int i = ss ; i >= nn; i--)
#define deb(x) std::cout << #x << " " << x << endl;
#define debl(x) std::cout << #x << " " << x << " ";
#define all(x) x.begin(), x.end()
using namespace std;
typedef long long ll;
typedef vector<int> vi;
typedef vector<ll> vl;
namespace std{
    template<class Fun>
    class y_combinator_result{
        Fun fun_;
        public:
            template<class T>
            explicit y_combinator_result(T &&fun) : fun_(std::forward<T>(fun)){}
            template<class ...Args>
            decltype(auto) operator()(Args&&...args){
                return fun_(std::ref(*this), std::forward<Args>(args)...);
            }
    };
    template<class Fun>
    decltype(auto) y_combinator(Fun && fun){
        return y_combinator_result<std::decay_t<Fun>>(std::forward<Fun>(fun));
    }
};
template<typename T>
bool umax(T& a, T b){
    bool ret = a < b;
    if(ret) a = b;
    return ret;
}
template<typename T>
bool umin(T& a, T b){
    bool ret = a > b;
    if(ret) a = b;
    return ret;
}
struct edge{
    int to; ll cost;
    int from;
    edge(){ edge(0,0);}
    edge(int to_, ll cost_) : to(to_), cost(cost_){}
    edge(int to_, int from_, ll cost_) : to(to_), cost(cost_), from(from_){}
};

template<typename... T>
void read(T& ... a){
    ((cin >> a),...);
}

template<typename... T>
void write(T... a){
    ((cout << a),...);
}


template<typename T>
vector<T> read_array(int sz){
    vector<T> ret(sz);
    for(auto & x : ret) cin >> x;
    return ret;
}

void solve(){
    int n;
    read(n);
    int mxN = 10000;
    vector<int> v;
    for(int k = 1; k <= mxN; k++){
        int c = 0;
        if ( k % 2 == 0) c++;
        if( k % 3 == 0) c++;
        if (k % 5 == 0) c++;
        if(c >= 2) v.push_back(k);
    }
    if(n == 3){
        vector<int> ans = {6, 10, 15};
        for(int i = 0 ; i < n ; i++) write(ans[i], " ");
        return;
    }
    // deb(v.size());
    for(int i = 0 ; i < n ; i++) write(v[i], " ");
}

int main()
{
    //making data IO Fast
    std::ios_base::sync_with_stdio(false);
    std::cin.tie(NULL);
    /****************************/
    int T = 1;
    // cin >> T;
    while(T--)
        solve();
    return 0;
}

