#include <bits/stdc++.h>
using namespace std;
int arr[205];
vector<int> vc[205];
int main() {
  int n, i, j, k;
  scanf("%d", &n);
  for (i = 1;; i++) {
    arr[i] = arr[i - 1] + i;
    if (arr[i] > n) break;
  }
  printf("%d\n", i);
  int tot = i * (i - 1) / 2;
  int cnt = 0;
  for (j = 1; j <= i; j++) {
    for (k = j + 1; k <= i; k++) {
      cnt++;
      vc[j].push_back(cnt);
      vc[k].push_back(cnt);
    }
  }
  for (j = 1; j <= i; j++) {
    for (k = 0; k < vc[j].size(); k++) {
      printf("%d ", vc[j][k]);
    }
    puts("");
  }
  return 0;
}
