#include<bits/stdc++.h>
using namespace std;
string a[220000];
int n,maxx[220000],i,j,l,r,k,o,x;
int main(){
scanf("%d",&n);
l=r=k=1;
maxx[1]=1;
a[1]="0";
for(i=2;i<=n;++i){
o=0;
for(j=l;j<=r;++j){
a[++k]=a[j]+char(o+48); maxx[k]=max(o+1,maxx[j]);
for(x=2;x<=maxx[j];++x){
a[++k]=a[j]+char(x+48);
maxx[k]=max(maxx[j],x+1);
}
a[++k]=a[j]+char(1-o+48); maxx[k]=max(2-o,maxx[j]);
o=1-o;
}
l=r+1; r=k;
}
printf("%d\n",r-l+1);
for(i=l;i<=r;++i){
for(j=0;j<maxx[i];++j){
printf("{");
bool flag=0;
for(k=0;k<n;++k)if(a[i][k]-48==j){
if(flag)printf(",");
flag=1;
printf("%d",k+1);
}
printf("}%c",j==maxx[i]-1?'\n':',');
}
}
}