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 <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef pair<ll, ll> P;
const ll MOD = 1000000007;
const int IINF = INT_MAX;
const ll LLINF = LLONG_MAX;
const int MAX_N = int(2e5 + 5);
const double EPS = 1e-8;
const int di[] = {0, 1, 0, -1}, dj[] = {1, 0, -1, 0};
#define REP(i, n) for (int i = 0; i < n; i++)
#define REPR(i, n) for (int i = n; i >= 0; i--)
#define SORT(v) sort((v).begin(), (v).end())
#define ALL(v) (v).begin(), (v).end()

ll ans[] = {2,7,2,3,2,1820261,2,5,2,3,2,19,2,73637,2,3,2,5,2,25037,2,3,2,13,2,67,2,3,2,7,2,11,2,3,2,43,2,5,2,3,2,166189,2,7,2,3,2,5,2,13,2,3,2,11,2,41,2,3,2,4651,2,101,2,3,2,659327,2,5,2,3,2,7,2,18701,2,3,2,5,2,23,2,3,2,53,2,7,2,3,2,37,2,421,2,3,2,773,2,5,2,3,2,13,2,701,2,3,2,5,2,735871,2,3,2,7,2,337,2,3,2,11,2,43,2,3,2,19,2,5,2,3,2,31,2,127,2,3,2,5,2,11182867,2,3,2,29,2,17,2,3,2,83,2,89,2,3,2,7,2,5,2,3,2,188417,2,11,2,3,2,5,2,7,2,3,2,179383,2,193,2,3,2,13,2,549966607,2,3,2,11,2,5,2,3,2,797,2,31,2,3,2,5,2,61,2,3,2,929,2,13,2,3,2,2657,2,7,2,3,2,79,2,5,2,3,2,808972159,2,437159,2,3,2,5,2,11,2,3,2,9416263,2,163997,2,3,2,7,2,1153,2,3,2,26693,2,5,2,3,2,11,2,7,2,3,2,5,2,29,2,3,2,23,2,73,2,3,2,9749,2,5011,2,3,2,1479136129,2,5,2,3,2,7,2,13,2,3,2,5,2,347,2,3,2,43,2,7,2,3,2,71,2,41,2,3,2,277,2,5,2,3,2,37,2,59,2,3,2,5,2,47,2,3,2,7,2,3169,2,3,2,89,2,61357,2,3,2,13,2,5,2,3,2,267479,2,181370767,2,3,2,5,2,17,2,3,2,19,2,23,2,3,2,131,2,11,2,3,2,7,2,5,2,3,2,263,2,79,2,3,2,5,2,7,2,3,2,11,2,37,2,3,2,283,2,19,2,3,2,35196481,2,5,2,3,2,23,2,10037,2,3,2,5,2,573216671,2,3,2,13,2,2777,2,3,2,25951,2,7,2,3,2,17284177,2,5,2,3,2,59,2,29,2,3,2,5,2,13,2,3,2,61,2,5009,2,3,2,7,2,17,2,3,2,233,2,5,2,3,2,349,2,7,2,3,2,5,2,12199279,2,3,2,181,2,135389,2,3,2,103,2,83,2,3,2,17,2,5,2,3,2,7,2,11,2,3,2,5,2,329196121,2,3,2,31,2,7,2,3,2,3931,2,8971,2,3,2,11,2,5,2,3,2,87014023,2,663417691,2,3,2,5,2,3181,2,3,2,7,2,383,2,3,2,23,2,317,2,3,2,321991,2,5,2,3,2,43,2,17,2,3,2,5,2,11,2,3,2,1013,2,31,2,3,2,13,2,3539,2,3,2,7,2,5,2,3,2,11,2,71,2,3,2,5,2,7,2,3,2,1504579,2,13,2,3,2,1745484569,2,47,2,3,2,44773,2,5,2,3,2,31840607,2,53,2,3,2,5,2,19,2,3,2,1723,2,11,2,3,2,41,2,7,2,3,2,2161,2,5,2,3,2,127,2,6199,2,3,2,5,2,6203,2,3,2,293,2,17,2,3,2,7,2,16381,2,3,2,29,2,5,2,3,2,1493,2,7,2,3,2,5,2,24821,2,3,2,227,2,89,2,3,2,17,2,11,2,3,2,19,2,5,2,3,2,7,2,73,2,3,2,5,2,27073,2,3,2,11,2,7,2,3,2,53,2,104089,2,3,2,13,2,5,2,3,2,521,2,19,2,3,2,5,2,41851,2,3,2,7,2,173,2,3,2,593,2,13,2,3,2,37,2,5,2,3,2,983,2,179,2,3,2,5,2,23,2,3,2,71947,2,139,2,3,2,11,2,29,2,3,2,7,2,5,2,3,2,17,2,41,2,3,2,5,2,7,2,3,2,13,2,384151,2,3,2,19,2,3049,2,3,2,23,2,5,2,3,2,107,2,11,2,3,2,5,2,13,2,3,2,151,2,181,2,3,2,29,2,7,2,3,2,11,2,5,2,3,2,787,2,328043,2,3,2,5,2,17,2,3,2,89,2,257,2,3,2,7,2,887,2,3,2,31,2,5,2,3,2,13,2,7,2,3,2,5,2,11,2,3,2,17,2,43,2,3,2,59423447,2,1123,2,3,2,6869,2,5,2,3,2,7,2,4271,2,3,2,5,2,1534751,2,3,2,19,2,7,2,3,2,231871,2,53,2,3,2,14519,2,5,2,3,2,557,2,191531,2,3,2,5,2,157769,2,3,2,7,2,11,2,3,2,13,2,17,2,3,2,24281,2,5,2,3,2,2731699123,2,9637357,2,3,2,5,2,83,2,3,2,191,2,13,2,3,2,109,2,570777997,2,3,2,7,2,5,2,3,2,599,2,10651,2,3,2,5,2,7,2,3,2,29,2,5399,2,3,2,101749,2,11,2,3,2,179909,2,5,2,3,2,499,2,8233,2,3,2,5,2,41,2,3,2,11,2,23,2,3,2,55439,2,7,2,3,2,511631,2,5,2,3,2,31,2,13,2,3,2,5,2,3943,2,3,2,991,2,19,2,3,2,7,2,6703,2,3,2,1307,2,5,2,3,2,23,2,7,2,3,2,5,2,2411,2,3,2,136935319,2,971,2,3,2,11,2,331,2,3,2,13,2,5,2,3,2,7,2,31,2,3,2,5,2,29,2,3,2,4549,2,7,2,3,2,59,2,13,2,3,2,83,2,5,2,3,2,19,2,11,2,3,2,5,2,113,2,3,2,7,2,17,2,3,2,5449,2,681180557,2,3,2,11,2,5,2,3,2,1886355043,2,23,2,3,2,5,2,19,2,3,2,13,2,479,2,3,2,17,2,446081,2,3,2,7,2,5,2,3,2,1889,2,47017,2,3,2,5,2,7,2,3,2,541,2,195311,2,3,2,23,2,67,2,3,2,108295217,2,5,2,3,2,11,2,607,2,3,2,5,2,53,2,3,2,827,2,1109,2,3,2,47,2,7,2,3,2,19,2,5,2,3,2,13,2,37,2,3,2,5,2,662683067,2,3,2,4397,2,11,2,3,2,7,2,67579,2,3,2,8761,2,5,2,3,2,17,2,7,2,3,2,5,2,31,2,3,2,2437,2,3848869,2,3,2,269,2,23,2,3,2,43,2,5,2,3,2,7,2,97,2,3,2,5,2,1301,2,3,2,6089,2,7,2,3,2,13,2,11,2,3,2,53,2,5,2,3,2,29,2,224401,2,3,2,5,2,17,2,3,2,7,2,13,2,3,2,19,2,359,2,3,2,113,2,5,2,3,2,7127,2,2038783,2,3,2,5,2,389,2,3,2,17,2,443,2,3,2,1579,2,43,2,3,2,7,2,5,2,3,2,37,2,263,2,3,2,5,2,7,2,3,2,31,2,71,2,3,2,11,2,163,2,3,2,197,2,5,2,3,2,1181,2,13,2,3,2,5,2,23,2,3,2,107,2,7193,2,3,2,2005068563,2,7,2,3,2,101,2,5,2,3,2,3413,2,11,2,3,2,5,2,1291,2,3,2,19,2,31,2,3,2,7};

int main() {
    int n;
    cin >> n;
    cout << "9586724781371233278" << endl;
    REP(i,n){
        cout << ans[i] << endl;
    }
    return 0;
}