#include<iostream>
#include<vector>
using namespace std;

int asdf ( long long x ) {
	int res = 0;
	long long a = 1;
	for ( ;a < x;a *= 2 ) ++res;
	return res;
}

int main() {
	long long n;
	cin >> n;
	int log = asdf ( n );
	cout << log << "\n";
	if ( n <= 100 ) {
		vector<int> a[10];
		for ( int i = 0;i < log;++i ) {
			a[i].push_back ( 0 );
		}
		for ( int x = 0;x < n;++x ) {
			for ( int i = 0;i < 10;++i ) {
				if ( x&(1<<i) ) { 
					a[i].push_back ( x + 1 );
					++a[i][0];
				}
			}
		}
		for ( int i = 0;i < log;++i ) {
			for ( int j = 0;j < a[i].size();++j ) {
				cout << a[i][j] << " ";
			}
			cout << "\n";
		}
	}
	return 0;
}
