#include<bits/stdc++.h>
using namespace std;
int n,mans,p,ans;
int mark[100],bin[1<<20];
void dfs(int x,int a,int b,int c){
if(x>n){
ans++;
if(ans>=1&&ans<=3){
for(int i=1;i<=n;i++) printf("%d ",mark[i]+1);
puts("");
}
return;
}
int t=(a|b|c)^p;
while(t) {
int i=t&(-t);
mark[x]=bin[i];
dfs(x+1,a|i,(b|i)>>1,((c|i)<<1)&p);
t-=i;
}
}
int main(){
scanf("%d",&n);
p=(1<<n)-1;
bin[0]=1;
for(int i=1; i<=n; i++)bin[1<<i]=i;
dfs(1,0,0,0);
printf("%d",ans);
return 0;
}