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