#include <iostream>
#include <cstdio>
#define Dmax 20
using namespace std;
int N; int v[Dmax];
void GENERARE(int);
void AFISARE(int);
void GENERARE(int k,int p)
{
if(k==p+1) AFISARE(p);
else
{
for(int i=v[k-1]+1; i<=N-p+k; i++)
{
v[k]=i; GENERARE(k+1,p);
}
}
}
void AFISARE(int p)
{
for(int i=1; i<=p; i++) printf("%d ",v[i]);
printf("\n");
}
int main()
{
freopen("submultimi.in", "r", stdin);
freopen("submultimi.out", "w", stdout);
scanf("%d", &N);
for(int i=1; i<=N; i++) GENERARE(1,i);
return 0;
}