Problem:
Score : 600 points

Problem Statement

Nagase is a top student in high school. One day, she's analyzing some properties of special sets of positive integers.

She thinks that a set S = \{a_{1}, a_{2}, ..., a_{N}\} of distinct positive integers is called special if for all 1 \leq i \leq N, the gcd (greatest common divisor) of a_{i} and the sum of the remaining elements of S is not 1.

Nagase wants to find a special set of size N. However, this task is too easy, so she decided to ramp up the difficulty. Nagase challenges you to find a special set of size N such that the gcd of all elements are 1 and the elements of the set does not exceed 30000.

Constraints

3 \leq N \leq 20000

Input

Input is given from Standard Input in the following format:

N

Output

Output N space-separated integers, denoting the elements of the set S. S must satisfy the following conditions :

The elements must be distinct positive integers not exceeding 30000.

The gcd of all elements of S is 1, i.e. there does not exist an integer d > 1 that divides all elements of S.

S is a special set.

If there are multiple solutions, you may output any of them. The elements of S may be printed in any order. It is guaranteed that at least one solution exist under the given contraints.

Sample Input 1

3

Sample Output 1

2 5 63

\{2, 5, 63\} is special because gcd(2, 5 + 63) = 2, gcd(5, 2 + 63) = 5, gcd(63, 2 + 5) = 7. Also, gcd(2, 5, 63) = 1. Thus, this set satisfies all the criteria.

Note that \{2, 4, 6\} is not a valid solution because gcd(2, 4, 6) = 2 > 1.

Sample Input 2

4

Sample Output 2

2 5 20 63

\{2, 5, 20, 63\} is special because gcd(2, 5 + 20 + 63) = 2, gcd(5, 2 + 20 + 63) = 5, gcd(20, 2 + 5 + 63) = 10, gcd(63, 2 + 5 + 20) = 9. Also, gcd(2, 5, 20, 63) = 1. Thus, this set satisfies all the criteria.

Solution in C++14 (GCC 5.4.1) (judge verdict: Wrong Answer)

#include <bits/stdc++.h>
#define REP(i, n) for(int i = 0;i < n;i++)
#define ll long long
using namespace std;
//typedef vector<unsigned int>vec;
//typedef vector<ll>vec;
//typedef vector<vec> mat;
typedef pair<int, int> P;
typedef pair<ll,ll> LP;
const int dx[8] = {1, 0, -1, 0, 1, -1, -1, 1};
const int dy[8] = {0, 1, 0, -1, 1, 1, -1, -1};
const int INF = 1000000000;
const ll LINF = 1000000000000000000;//1e18
//const ll MOD = 1000000007;
const ll MOD = 998244353;
const double PI = acos(-1.0);
const double EPS = 1e-10;

template<class T> inline bool chmax(T& a, T b) { if (a < b) { a = b; return true; } return false; }
template<class T> inline bool chmin(T& a, T b) { if (a > b) { a = b; return true; } return false; }
//template<class T> inline void add(T &a, T b){a = ((a+b) % MOD + MOD) % MOD;};


void solve(){
    int N;
    cin >> N;
    if(N == 3){
        cout << "2 5 63" << endl;
        return;
    }
    else if(N == 4){
        cout << "2 5 20 63" << endl;
        return;
    }
    else if(N == 5){
        cout << "2 5 20 30 63" << endl;
        return;
    }
    ll sum = 0;
    vector<int> ans;
    int k = 0;
    while(N > 0){
        if(N > 0){
            ans.push_back(6*k + 2);
            N--;
            sum += 6*k + 2;
        }
        if(N > 0){
            ans.push_back(6*k + 3);
            N--;
            sum += 6*k + 3;
        }
        if(N > 0){
            ans.push_back(6*k + 4);
            N--;
            sum += 6*k + 4;
        }
        if(N > 0){
            ans.push_back(6*k + 6);
            N--;
            sum += 6*k + 6;
        }
        k++;
    }
    if(sum % 6 == 2){
        auto itr = lower_bound(ans.begin(), ans.end(), 8);
        ans.erase(itr);
        ans.push_back(6 * k);
    }
    if(sum % 6 == 3){
        auto itr = lower_bound(ans.begin(), ans.end(), 9);
        ans.erase(itr);
        ans.push_back(6 * k);
    }
    if(sum % 6 == 5){
        auto itr = lower_bound(ans.begin(), ans.end(), 9);
        ans.erase(itr);
        ans.push_back(6 * k + 4);
    }
    for(auto x : ans) cout << x << " ";
    cout << endl;
}

int main(){
    cin.tie(0);
    ios::sync_with_stdio(false);
    solve();
    // int T; cin >> T; REP(t,T) solve();
}