#include <iostream>
#include <algorithm>
#include <string>
#include <vector>
#include <cstring>

using namespace std;

typedef long long lli;

const int DIGITS = 1000;
const int BASE = 100000;
const int BD = 5;

class BigNum{
  lli val[DIGITS], tmp[DIGITS];
  int dig;
public:
  BigNum(){
    dig = 1;
    memset(val, 0, sizeof(val));
  }
  BigNum(lli x){
    dig = 0;
    for(int i=0;i<DIGITS;++i){
      if(x == 0) val[i] = 0;
      else{
        ++dig;
        val[i] = x % BASE;
        x /= BASE;
      }
    }
  }

  void operator + (const lli x){
    val[0] += x;
    for(int i=0;i<DIGITS;++i){
      val[i+1] += val[i] / BASE;
      val[i] %= BASE;
      if(val[i]) dig = i + 1;
    }
  }

  void operator * (const lli x){
    for(int i=0;i<DIGITS;++i) val[i] *= x;
    for(int i=0;i<DIGITS;++i){
      val[i+1] += val[i] / BASE;
      val[i] %= BASE;
      if(val[i]) dig = i + 1;
    }
  }

  string toString(){
    string res;
    for(int i=0;i<dig;++i){
      for(int j=0;j<BD;++j){
        res.push_back(val[i]%10 + '0');
        val[i] /= 10;
      }
    }
    int size;
    for(size=res.size();size>1&&res[size-1]=='0';--size);
    res = res.substr(0, size);
    reverse(res.begin(), res.end());
    return res;
  }
};

int main(){
  int n;
  cin >> n;
  BigNum x = BigNum(1);
  for(int i=2;i<=n+1;++i) x * i;
  x + 2;
  cout << x.toString() << endl;
  for(int i=0;i<n;i++) cout << i+2 << endl;
}