#include <bits/stdc++.h>
using namespace std;
const int N = 23;
int n;
int st[N]; //状态数组(记录每个数的状态) 0表示没考虑 1表示选 2表示不选
void dfs(int x)
{
if(x>n)
{
for(int i=1;i<=n;i++)
{
if(st[i] == 1)
printf("%d ",i);
}
printf("\n");
return ;
}
st[x] = 1; //选
dfs(x+1);
st[x] = 0; //回溯
st[x] = 2; //不选
dfs(x+1);
st[x] = 0; //回溯
}
int main(){
scanf("%d",&n);
dfs(1);
return 0;
}