#include<bits/stdc++.h>
using namespace std;
int st[20];
int n;
void dfs(int x){//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;//恢复现场,把当前层数的值归0,初始值
}
int main(){
scanf("%d",&n);
dfs(1);
return 0;
}