#include <bits/stdc++.h>
using namespace std;
int a[155][155];
int has[155];
int main() {
  a[1][1] = 1;
  a[2][1] = 1;
  int cnt = 0;
  int i, j, k;
  int num1 = 1, num2 = 1;
  for (i = 2; i <= 150; i++) {
    for (j = 1; j <= i; j++) a[j][i] = ++num1;
    for (j = 1; j <= i; j++) a[i + 1][j] = ++num2;
  }
  int ct = 0;
  for (i = 1; i <= 150; i++) has[ct++] = a[i + 1][i];
  int n;
  scanf("%d", &n);
  for (i = 0; i < ct; i++)
    if (has[i] > n) {
      n = has[i - 1];
      break;
    }
  int tt = i + 1;
  printf("%d\n", tt);
  for (i = 1; i <= tt; i++) {
    for (j = 1; j <= tt - 1; j++) {
      if (j > 1) printf(" ");
      printf("%d", a[i][j]);
    }
    printf("\n");
  }
  return 0;
}
