#include <bits/stdc++.h>
using namespace std;
long long n, i, j, m, x, c, count, nr, OK, suma, k, level, val, y[100], z;
void inmultire_y(long long nr) {
  int i = 0;
  int j = 0;
  int Max = 0;
  for (; i < 100; i++) y[i] = 0;
  long long x2 = nr;
  int n = 0;
  while (x2) {
    n++;
    x2 /= 10;
  }
  x2 = nr;
  for (i = 1; i <= n; i++) {
    long long x1 = nr;
    for (j = 1; j <= n; j++) {
      y[i + j - 1] += (x2 % 10) * (x1 % 10);
      Max = max(Max, i + j - 1);
      if (y[i + j - 1] >= 10) {
        Max = max(Max, i + j);
        y[i + j] += y[i + j - 1] / 10;
        y[i + j - 1] = y[i + j - 1] % 10;
      }
      x1 /= 10;
    }
    x2 /= 10;
  }
  y[0] = Max;
}
long long impartire_y(long long X) {
  long long i;
  unsigned long R = 0;
  for (i = y[0]; i; i--) {
    y[i] = (R = 10 * R + y[i]) / X;
    R %= X;
  }
  while (!y[y[0]] && y[0] > 1) y[0]--;
  long long r = 0;
  for (i = 100; i > 0; i--) {
    if (y[i]) {
      for (long long j = i; j > 0; j--) {
        r = r * 10 + y[j];
      }
      break;
    }
  }
  return r;
}
int main() {
  cin >> n;
  val = 2;
  for (level = 2; level <= n + 1; level++) {
    x = level * (level - 1);
    while (1) {
      inmultire_y(x);
      z = impartire_y(level - 1);
      z = z - val / (level - 1);
      break;
    }
    val = x;
    cout << z << "\n";
  }
  return 0;
}
