#include <fstream>
#include <vector>
using namespace std;
ifstream cin("submultimi.in");
ofstream cout("submultimi.out");
void subm(int n, vector <int> &terms, vector <bool> &viz)
{
int val = 1;
if(terms.size()) {
val = terms.back() + 1;
for(auto x: terms) {
cout << x << " ";
}
cout << "\n";
}
for(int i = val; i <= n; ++i) {
if(viz[i] == 0) {
viz[i] = 1;
terms.push_back(i);
subm(n, terms, viz);
terms.pop_back();
viz[i] = 0;
}
}
}
int main()
{
int n;
cin >> n;
vector <int> v;
vector <bool> viz(n + 1, false);
subm(n, v, viz);
return 0;
}