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

const int MAX_N = 41;
typedef long long LL;

LL a[1 << (MAX_N / 2)], b[1 << (MAX_N / 2)];
LL item[MAX_N];

int generate_item(LL* s, int beg, int end) {
    int len = 1 << (end - beg);
    for (int i = 0; i < len; i++) {
        for (int j = beg; j < end; j++)
            s[i] += (1 << (j - beg)) & i ? item[j] : 0;
    }
    sort(s, s + len);
    return len;
}

LL GCD(LL x, LL y) {
    return y == 0 ? x : GCD(y, x % y);
}

LL LCM(LL x, LL y) {
    return x * y / GCD(x, y);
}

int main() {
//    cout << LCM(4, 6) << endl;
    LL t = 1, N;
    cin >> N;
    for (int i = 2; i <= N; i++) {
        t = LCM(t, i);
//        cout << t << endl;
    }
    cout << t + 1 << endl;
    return 0;
}

#include <bits/stdc++.h>
#define mk make_pair
#define fs first
#define sc second
using namespace std;
typedef long long ll;
typedef long double ld;
// please, read the question correctly (do you need set or multiset)???
const int N=200010; //check the limits, dummy
int a[N];
int n, m;
int main(){
	scanf("%d",&n);
	n-=3;
	set<int> s;
	int tmp = 6;
	for(int i=2; i*6<=10000; ++i){
		s.insert(i*6);
	}
	tmp = 10;
	for(int i=2; i*10<=10000; ++i){
		s.insert(i*10);
	}
	tmp = 15;
	for(int i=2; i*15<=10000; ++i){
		s.insert(i*15);
	}
	assert(s.size()>=2500);
	while(s.size()>n){
		s.erase(--s.end());
	}
	s.insert(6);
	s.insert(10);
	s.insert(15);
	for(auto it:s){
		printf("%d ",it);
	}
	printf("\n");
}