#include <bits/stdc++.h>
using namespace std;
vector<int> v[10100];
int main() {
  int n;
  scanf("%d", &n);
  int l = 3;
  int add = 3;
  n -= 3;
  while (n >= add) {
    n -= add;
    l++;
    add++;
  }
  int k = 1;
  for (int i = 0; i < l; i++) {
    for (int j = i + 1; j < l; j++) {
      v[i].push_back(k);
      v[j].push_back(k);
      k++;
    }
  }
  printf("%d\n", l);
  for (int i = 0; i < l; i++) {
    for (int j = 0; j < v[i].size(); j++)
      printf("%d%c", v[i][j], j + 1 == v[i].size() ? '\n' : ' ');
  }
}
