#include <iostream>
#include <vector>

using namespace std;

bool is_ok (int x) {
  if (x % 2 != 0) return false;
  if (x % 3 == 0) return true;
  if (x % 5 == 0) return true;
  if (x % 7 == 0) return true;
  if (x % 11 == 0) return true;
  return false;
}

int main () {
  vector<int> ans;
  ans.push_back(3 * 5 * 7 * 11);

  int n;
  cin >> n;
  
  for (int i = 1; i <= 10000 && (int) ans.size() < n; i++) {
    if (is_ok(i)) {
      ans.push_back(i);
    }
  }

  for (int i = 0; i < n; i++) {
    cout << ans[i] << " ";
  }
  cout << endl;
}

#pragma GCC optimize ("Ofast")
#include<bits/stdc++.h>
#define int long long
using namespace std;
inline int read()
{
	bool flag=1;
	int x=0;
	char c=getchar();
	while(c<'0'||c>'9')
	{
		if(c=='-')
			flag=0;
		c=getchar();
	}
	while(c>='0'&&c<='9')
	{
		x=(x<<1)+(x<<3)+c-'0';
		c=getchar();
	}
	return (flag?x:~(x-1));
}
int n,now=18;
signed main() 
{
	n=read()-3;
	cout<<"6 10 15 ";
	while(n) 
	{
		if(now%30==0||now%30==6||now%30==10||now%30==12||now%30==15||now%30==18||now%30==24||now%30==20) 
		{
			cout<<now<<" ";
			n-=1;
		}
		now++;
	}
	return 0;
}
