#include <bits/stdc++.h>
using namespace std;
const int mod = 1000000007;
int G[205][205];
int main() {
  int n;
  while (cin >> n) {
    int m = ceil(sqrt(n * 2) + 1);
    while (m * (m - 1) > n * 2) --m;
    int tot = 0;
    for (int i = 0; i < m; i++) {
      for (int j = 0; j < i; j++) {
        G[i][j] = G[j][i] = ++tot;
      }
    }
    cout << m << endl;
    for (int i = 0; i < m; i++) {
      int flag = 0;
      for (int j = 0; j < m; j++) {
        if (i != j) {
          if (!flag)
            cout << G[i][j];
          else
            cout << " " << G[i][j];
          flag = 1;
        }
      }
      puts("");
    }
  }
  return 0;
}
