#include<stdio.h>
int poss[20],k=0;
int
check(int index,int n,int i){
int j,k=0;
for(j=index-1;j>0;j--){
k++;
if(poss[j]==i || poss[j]==i-k || poss[j]==i+k)
return 0;
}
return 1;
}
void
dfs(int n,int index){
int i;
if(index>n){
if(k<3){
for(i=1;i<=n;i++){
printf("%d ",poss[i]);
}
printf("\n");
}
k++;
return ;
}
for(i=1;i<=n;i++){
if(check(index,n,i)){
poss[index]=i;
dfs(n,index+1);
}
}
}
int
main(){
int n;
scanf("%d",&n);
dfs(n,1);
printf("%d",k);
return 0;
}