import std.algorithm;
import std.array;
import std.conv;
import std.math;
import std.range;
import std.stdio;
import std.string;


void main() {
  int n;
  auto a = [2, 3, 5, 7, 11, 13];
  int p = a.reduce! ( (a, b) => a * b);
  readf (" %d", &n);
  auto b = new int[n];
  //int k = 0, i = 2;
  
  auto c = iota (2, 29999).filter! (i => a.any! (j => (i % j) == 0)).array;
 
  b[0 .. n - 2] = c[0 .. n - 2];
  int s = b.sum;
  foreach (i; n - 2 .. c.length.to!(int)) {
    //int t = p - s + c[i];
    int u = ((s + c[i] + p - 1) / p) * p;
    int t = u - (s + c[i]);
    if (t > 1 && t < 30000 && !a.all! (j => (t % j) == 0)) {
      b[n-2] = c[i];
      b[n-1] = t;
      break;
    }
  }
  /*
  while (k < n - 1) {
    if (a.any! (j => (i % j) == 0)) {
      b[k++] = i;
      i++;
    } else {
      i++;
    }
  }
  b[n-1] = p - a[0 .. n - 1].sum;
  */
  b.map! (i => i.text).join(" ").writeln;
}
