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

vector < int > v[1024];

int main(){
	long long N;
	
	cin >> N;
	--N;
	long long tmp = 1, res = 0;
	
	while ( tmp <= N ) { tmp *= 2; ++res; }
	
	cout << res << endl;
	
	if ( N > 100 )
		return 0;
	
	for ( int i = 1; i <= N; ++i )
		for ( int j = 0; j <= tmp; ++j )
			if ( i & ( 1 << j ) )
				v[j].push_back ( i );
	
	for ( int i = 0; ( 1 << i ) <= N; ++i ){
		cout << v[i].size() << " ";
		
		for ( int j = 0; j < v[i].size(); ++j )
			cout << v[i][j] << " ";
		cout << endl;
	}

}
