#include<bits/stdc++.h>
using namespace std;
using UL = unsigned int;
using ULL = unsigned long long;
using LL = long long;
#define rep(i, n) for(UL i = 0; i < (n); i++)

struct Problem {
public:

	void Solve() {
		UL N; scanf("%d", &N);
		rep(i, 1 << N) {
			printf("%d:", i);
			rep(j, N) {
				if ((i >> j) & 1) printf(" %d", j);
			}
			printf("\n");
		}
	}
};

int main() {
	unique_ptr<Problem> p(new Problem());
	p->Solve();
	return 0;
}

