Problem: Given n, find n consecutive positive integers. However, all numbers must have divisors other than 1 and the number itself.

Hint

In Sample Output 2, 8, 9 and 10 are selected as three consecutive integers.
The second and third lines output 3, as a divisor of 9, and the fourth line outputs 5, as a divisor of 10.



Input

The input is given in the following format.


n


The input meets the following constraints.
1 ≤ n ≤ 1,500

Output

Print the smallest of the n consecutive positive integers you choose on the first line.
Output the divisor for each value from the 2nd line to the n + 1 line.
Any value may be output unless the divisor is 1 or the number itself.
Let x be the number output on the first line, and output the divisor of x + i-2 on the i line.

The output value must not exceed 5,000 digits.

Examples

Input

2


Output

8
2
3


Input

3


Output

8
2
3
5

Solution (in CPP):

Solution:
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <climits>
#include <cfloat>
#include <map>
#include <utility>
#include <ctime>
#include <set>
#include <iostream>
#include <memory>
#include <string>
#include <vector>
#include <algorithm>
#include <functional>
#include <sstream>
#include <complex>
#include <stack>
#include <queue>
#include <cstring>
#include <numeric>
#include <cassert>
using namespace std;
static const double EPS = 1e-10;
typedef long long ll;
#define rep(i,n) for(int i=0;i<n;i++)
#define rev(i,n) for(int i=n-1;i>=0;i--)
#define all(a) a.begin(),a.end()
#define mp(a,b) make_pair(a,b)
#define pb(a) push_back(a)
#define SS stringstream
#define DBG1(a) rep(_X,sz(a)){printf("%d ",a[_X]);}puts("");
#define DBG2(a) rep(_X,sz(a)){rep(_Y,sz(a[_X]))printf("%d ",a[_X][_Y]);puts("");}
#define bitcount(b) __builtin_popcount(b)
#define EACH(i,c) for(typeof((c).begin()) i=(c).begin(); i!=(c).end(); ++i)

#define delete(a,n) a.erase(remove(all(a),n),a.end())
template<typename T, typename S> vector<T>& operator<<(vector<T>& a, S b) { a.push_back(b); return a; }
template<typename T> void operator>>(vector<T>& a, int b) {while(b--)if(!a.empty())a.pop_back();}
ll b_pow(ll x,ll n){return n ? b_pow(x*x,n/2)*(n%2?x:1) : 1ll;}
string itos(int n){stringstream ss;ss << n;return ss.str();}

string table[] =
{
"2",
"3989",
"2",
"3",
"2",
"7",
"2",
"229",
"2",
"3",
"2",
"11437",
"2",
"5",
"2",
"3",
"2",
"11",
"2",
"7",
"2",
"3",
"2",
"5",
"2",
"97787309",
"2",
"3",
"2",
"446189",
"2",
"101",
"2",
"3",
"2",
"47",
"2",
"53",
"2",
"3",
"2",
"13",
"2",
"5",
"2",
"3",
"2",
"7",
"2",
"9011",
"2",
"3",
"2",
"5",
"2",
"41",
"2",
"3",
"2",
"43",
"2",
"7",
"2",
"3",
"2",
"73",
"2",
"13",
"2",
"3",
"2",
"25537",
"2",
"5",
"2",
"3",
"2",
"17",
"2",
"29",
"2",
"3",
"2",
"5",
"2",
"2137955523059",
"2",
"3",
"2",
"7",
"2",
"19",
"2",
"3",
"2",
"181",
"2",
"1270889091959",
"2",
"3",
"2",
"66457",
"2",
"5",
"2",
"3",
"2",
"59",
"2",
"1625629",
"2",
"3",
"2",
"5",
"2",
"125269",
"2",
"3",
"2",
"13",
"2",
"113",
"2",
"3",
"2",
"323903",
"2",
"11",
"2",
"3",
"2",
"7",
"2",
"5",
"2",
"3",
"2",
"29",
"2",
"313",
"2",
"3",
"2",
"5",
"2",
"7",
"2",
"3",
"2",
"11",
"2",
"62351",
"2",
"3",
"2",
"44773",
"2",
"241",
"2",
"3",
"2",
"83",
"2",
"5",
"2",
"3",
"2",
"19",
"2",
"135533",
"2",
"3",
"2",
"5",
"2",
"5009",
"2",
"3",
"2",
"17",
"2",
"23",
"2",
"3",
"2",
"8778219803",
"2",
"7",
"2",
"3",
"2",
"821",
"2",
"5",
"2",
"3",
"2",
"13",
"2",
"283",
"2",
"3",
"2",
"5",
"2",
"19",
"2",
"3",
"2",
"61",
"2",
"73",
"2",
"3",
"2",
"7",
"2",
"492491",
"2",
"3",
"2",
"89",
"2",
"5",
"2",
"3",
"2",
"23",
"2",
"7",
"2",
"3",
"2",
"5",
"2",
"484715177",
"2",
"3",
"2",
"295305486419",
"2",
"103",
"2",
"3",
"2",
"414329",
"2",
"17",
"2",
"3",
"2",
"3001",
"2",
"5",
"2",
"3",
"2",
"7",
"2",
"11",
"2",
"3",
"2",
"5",
"2",
"107",
"2",
"3",
"2",
"1013",
"2",
"7",
"2",
"3",
"2",
"13",
"2",
"853",
"2",
"3",
"2",
"11",
"2",
"5",
"2",
"3",
"2",
"397",
"2",
"3761",
"2",
"3",
"2",
"5",
"2",
"1543",
"2",
"3",
"2",
"7",
"2",
"13",
"2",
"3",
"2",
"2129",
"2",
"661",
"2",
"3",
"2",
"29",
"2",
"5",
"2",
"3",
"2",
"43",
"2",
"19",
"2",
"3",
"2",
"5",
"2",
"11",
"2",
"3",
"2",
"31",
"2",
"61",
"2",
"3",
"2",
"37",
"2",
"1723",
"2",
"3",
"2",
"7",
"2",
"5",
"2",
"3",
"2",
"11",
"2",
"17",
"2",
"3",
"2",
"5",
"2",
"7",
"2",
"3",
"2",
"7936613",
"2",
"67",
"2",
"3",
"2",
"23",
"2",
"331",
"2",
"3",
"2",
"2098178107",
"2",
"5",
"2",
"3",
"2",
"15361",
"2",
"13",
"2",
"3",
"2",
"5",
"2",
"937",
"2",
"3",
"2",
"281",
"2",
"11",
"2",
"3",
"2",
"19",
"2",
"7",
"2",
"3",
"2",
"14960761",
"2",
"5",
"2",
"3",
"2",
"97",
"2",
"37",
"2",
"3",
"2",
"5",
"2",
"71",
"2",
"3",
"2",
"199",
"2",
"58613",
"2",
"3",
"2",
"7",
"2",
"29",
"2",
"3",
"2",
"13",
"2",
"5",
"2",
"3",
"2",
"161137327103",
"2",
"7",
"2",
"3",
"2",
"5",
"2",
"919",
"2",
"3",
"2",
"941",
"2",
"17",
"2",
"3",
"2",
"43615207",
"2",
"11",
"2",
"3",
"2",
"53",
"2",
"5",
"2",
"3",
"2",
"7",
"2",
"4967",
"2",
"3",
"2",
"5",
"2",
"1741",
"2",
"3",
"2",
"11",
"2",
"7",
"2",
"3",
"2",
"17",
"2",
"971",
"2",
"3",
"2",
"57427",
"2",
"5",
"2",
"3",
"2",
"601",
"2",
"109",
"2",
"3",
"2",
"5",
"2",
"47",
"2",
"3",
"2",
"7",
"2",
"751",
"2",
"3",
"2",
"31",
"2",
"1871",
"2",
"3",
"2",
"359",
"2",
"5",
"2",
"3",
"2",
"42283",
"2",
"2733551",
"2",
"3",
"2",
"5",
"2",
"13",
"2",
"3",
"2",
"66721",
"2",
"317",
"2",
"3",
"2",
"11",
"2",
"19",
"2",
"3",
"2",
"7",
"2",
"5",
"2",
"3",
"2",
"37",
"2",
"787",
"2",
"3",
"2",
"5",
"2",
"7",
"2",
"3",
"2",
"746653",
"2",
"1051",
"2",
"3",
"2",
"43",
"2",
"31",
"2",
"3",
"2",
"251",
"2",
"5",
"2",
"3",
"2",
"13",
"2",
"11",
"2",
"3",
"2",
"5",
"2",
"23",
"2",
"3",
"2",
"47",
"2",
"29",
"2",
"3",
"2",
"13693",
"2",
"7",
"2",
"3",
"2",
"11",
"2",
"5",
"2",
"3",
"2",
"307",
"2",
"63772991",
"2",
"3",
"2",
"5",
"2",
"224450867",
"2",
"3",
"2",
"41",
"2",
"37",
"2",
"3",
"2",
"7",
"2",
"101",
"2",
"3",
"2",
"23",
"2",
"5",
"2",
"3",
"2",
"193",
"2",
"7",
"2",
"3",
"2",
"5",
"2",
"11",
"2",
"3",
"2",
"29",
"2",
"19",
"2",
"3",
"2",
"13",
"2",
"1097",
"2",
"3",
"2",
"491",
"2",
"5",
"2",
"3",
"2",
"7",
"2",
"211",
"2",
"3",
"2",
"5",
"2",
"463",
"2",
"3",
"2",
"17",
"2",
"7",
"2",
"3",
"2",
"812162933",
"2",
"59",
"2",
"3",
"2",
"31",
"2",
"5",
"2",
"3",
"2",
"12907",
"2",
"5381",
"2",
"3",
"2",
"5",
"2",
"1607",
"2",
"3",
"2",
"7",
"2",
"11",
"2",
"3",
"2",
"1213",
"2",
"167",
"2",
"3",
"2",
"151",
"2",
"5",
"2",
"3",
"2",
"19",
"2",
"149971",
"2",
"3",
"2",
"5",
"2",
"38459",
"2",
"3",
"2",
"409",
"2",
"347",
"2",
"3",
"2",
"89",
"2",
"17",
"2",
"3",
"2",
"7",
"2",
"5",
"2",
"3",
"2",
"6359",
"2",
"13",
"2",
"3",
"2",
"5",
"2",
"7",
"2",
"3",
"2",
"23",
"2",
"421",
"2",
"3",
"2",
"4703",
"2",
"11",
"2",
"3",
"2",
"17",
"2",
"5",
"2",
"3",
"2",
"20071",
"2",
"113",
"2",
"3",
"2",
"5",
"2",
"2713",
"2",
"3",
"2",
"11",
"2",
"1063855813",
"2",
"3",
"2",
"59",
"2",
"7",
"2",
"3",
"2",
"13",
"2",
"5",
"2",
"3",
"2",
"24603625843",
"2",
"673",
"2",
"3",
"2",
"5",
"2",
"21143",
"2",
"3",
"2",
"101",
"2",
"71",
"2",
"3",
"2",
"7",
"2",
"13",
"2",
"3",
"2",
"19",
"2",
"5",
"2",
"3",
"2",
"2441",
"2",
"7",
"2",
"3",
"2",
"5",
"2",
"30071",
"2",
"3",
"2",
"2591",
"2",
"23",
"2",
"3",
"2",
"11",
"2",
"28032877",
"2",
"3",
"2",
"47",
"2",
"5",
"2",
"3",
"2",
"7",
"2",
"19",
"2",
"3",
"2",
"5",
"2",
"277",
"2",
"3",
"2",
"13",
"2",
"7",
"2",
"3",
"2",
"383",
"2",
"107",
"2",
"3",
"2",
"36187",
"2",
"5",
"2",
"3",
"2",
"23",
"2",
"11",
"2",
"3",
"2",
"5",
"2",
"13",
"2",
"3",
"2",
"7",
"2",
"2545134953",
"2",
"3",
"2",
"109",
"2",
"2931217",
"2",
"3",
"2",
"11",
"2",
"5",
"2",
"3",
"2",
"3569560243",
"2",
"29",
"2",
"3",
"2",
"5",
"2",
"3929",
"2",
"3",
"2",
"13399303",
"2",
"17",
"2",
"3",
"2",
"19",
"2",
"405230351",
"2",
"3",
"2",
"7",
"2",
"5",
"2",
"3",
"2",
"13",
"2",
"261613023293",
"2",
"3",
"2",
"5",
"2",
"7",
"2",
"3",
"2",
"97",
"2",
"53",
"2",
"3",
"2",
"17",
"2",
"406624699529",
"2",
"3",
"2",
"37",
"2",
"5",
"2",
"3",
"2",
"11",
"2",
"23",
"2",
"3",
"2",
"5",
"2",
"101623679",
"2",
"3",
"2",
"547",
"2",
"39651253",
"2",
"3",
"2",
"113",
"2",
"7",
"2",
"3",
"2",
"67",
"2",
"5",
"2",
"3",
"2",
"17842849",
"2",
"41",
"2",
"3",
"2",
"5",
"2",
"4456900671409",
"2",
"3",
"2",
"236407",
"2",
"11",
"2",
"3",
"2",
"7",
"2",
"140891",
"2",
"3",
"2",
"167",
"2",
"5",
"2",
"3",
"2",
"13151",
"2",
"7",
"2",
"3",
"2",
"5",
"2",
"37",
"2",
"3",
"2",
"19",
"2",
"13",
"2",
"3",
"2",
"21987259769",
"2",
"73",
"2",
"3",
"2",
"43",
"2",
"5",
"2",
"3",
"2",
"7",
"2",
"552821",
"2",
"3",
"2",
"5",
"2",
"349",
"2",
"3",
"2",
"1493",
"2",
"7",
"2",
"3",
"2",
"252827",
"2",
"11",
"2",
"3",
"2",
"41",
"2",
"5",
"2",
"3",
"2",
"503",
"2",
"3803",
"2",
"3",
"2",
"5",
"2",
"31",
"2",
"3",
"2",
"7",
"2",
"433",
"2",
"3",
"2",
"59971",
"2",
"23",
"2",
"3",
"2",
"7583111",
"2",
"5",
"2",
"3",
"2",
"83",
"2",
"13",
"2",
"3",
"2",
"5",
"2",
"17",
"2",
"3",
"2",
"59",
"2",
"1024509727",
"2",
"3",
"2",
"317",
"2",
"43",
"2",
"3",
"2",
"7",
"2",
"5",
"2",
"3",
"2",
"1319",
"2",
"19961",
"2",
"3",
"2",
"5",
"2",
"7",
"2",
"3",
"2",
"17",
"2",
"38402045413",
"2",
"3",
"2",
"11",
"2",
"2716079",
"2",
"3",
"2",
"13",
"2",
"5",
"2",
"3",
"2",
"71209",
"2",
"163",
"2",
"3",
"2",
"5",
"2",
"991",
"2",
"3",
"2",
"29401",
"2",
"19",
"2",
"3",
"2",
"7283",
"2",
"7",
"2",
"3",
"2",
"337",
"2",
"5",
"2",
"3",
"2",
"709",
"2",
"11",
"2",
"3",
"2",
"5",
"2",
"5273837",
"2",
"3",
"2",
"31",
"2",
"7121",
"2",
"3",
"2",
"7",
"2",
"17",
"2",
"3",
"2",
"11",
"2",
"5",
"2",
"3",
"2",
"268237",
"2",
"7",
"2",
"3",
"2",
"5",
"2",
"23",
"2",
"3",
"2",
"13",
"2",
"173",
"2",
"3",
"2",
"17077",
"2",
"29",
"2",
"3",
"2",
"17",
"2",
"5",
"2",
"3",
"2",
"7",
"2",
"53",
"2",
"3",
"2",
"5",
"2",
"11",
"2",
"3",
"2",
"6977",
"2",
"7",
"2",
"3",
"2",
"149",
"2",
"810659",
"2",
"3",
"2",
"23",
"2",
"5",
"2",
"3",
"2",
"11",
"2",
"51419",
"2",
"3",
"2",
"5",
"2",
"19",
"2",
"3",
"2",
"7",
"2",
"47",
"2",
"3",
"2",
"29",
"2",
"2503",
"2",
"3",
"2",
"3011",
"2",
"5",
"2",
"3",
"2",
"13",
"2",
"17",
"2",
"3",
"2",
"5",
"2",
"3524861611871",
"2",
"3",
"2",
"73",
"2",
"11",
"2",
"3",
"2",
"1709",
"2",
"2237",
"2",
"3",
"2",
"7",
"2",
"5",
"2",
"3",
"2",
"1001347",
"2",
"467",
"2",
"3",
"2",
"5",
"2",
"7",
"2",
"3",
"2",
"71",
"2",
"197",
"2",
"3",
"2",
"53",
"2",
"3079",
"2",
"3",
"2",
"19",
"2",
"5",
"2",
"3",
"2",
"867037",
"2",
"61",
"2",
"3",
"2",
"5",
"2",
"43",
"2",
"3",
"2",
"4243",
"2",
"23516551",
"2",
"3",
"2",
"13",
"2",
"7",
"2",
"3",
"2",
"119057",
"2",
"5",
"2",
"3",
"2",
"12007",
"2",
"19",
"2",
"3",
"2",
"5",
"2",
"239",
"2",
"3",
"2",
"11",
"2",
"13",
"2",
"3",
"2",
"7",
"2",
"103",
"2",
"3",
"2",
"373",
"2",
"5",
"2",
"3",
"2",
"419",
"2",
"7",
"2",
"3",
"2",
"5",
"2",
"17299",
"2",
"3",
"2",
"18493"};

int main(){
	/*string s;
	while(getline(cin,s)){
		for(int i = 0 ; i < s.size() ; i++) if( s[i] == ':' ) s[i] = ' ';
		stringstream ss(s);
		int t;
		string a,b;
		ss >> a >> b;
		cout << "\"" << b << "\"," << endl;
	}*/
	
	int n;
	cin >> n;
	cout << "74248258606071262682440872" << endl;
	for(int i = 0 ; i < n ; i++) cout << table[i] << endl;
}