#include <iostream>
using namespace std;
void print_subset(int n,int s){ //打印{0,1,2……,n-1}的子集S
for(int i=0;i<n;i++){
if(s&(1<<i)) cout<<i<<' ';
}
cout<<endl;
}
int main(){
int n;
while(cin>>n){
for(int i=0;i<(1<<n);i++){ //枚举子集所对应的编码 0,1,2,,,,,1<<n-1
print_subset(n,i);
}
}
return 0;
}