#include <bits/stdc++.h>
const int N_MAX = 16;
std::bitset<N_MAX> taken;
int n;
int sk_size;
int v[N_MAX];
void push(int val)
{
v[sk_size++] = val;
}
void pop()
{
sk_size--;
}
void print_vector()
{
for (int i = 0; i < sk_size; i++) {
std::cout<< v[i] << ' ';
}
std::cout << '\n';
}
void bkt(int poz)
{
for (int i = poz; i <= n; i++) {
push(i);
print_vector();
bkt(i + 1);
pop();
}
}
void solve()
{
std::cin >> n;
bkt(1);
}
signed main(void)
{
freopen("submultimi.in", "r", stdin);
freopen("submultimi.out", "w", stdout);
std::ios::sync_with_stdio(false);
std::cin.tie(nullptr);
int tt = 1;
while (tt--) {
solve();
}
}