#include<bits/stdc++.h>
using namespace std;
int c[14][14],n,target;
void dfs(int c[][14],int a,int b){
c[a][b]=1;
if(a==n) {
target++;
if(target<4){
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(c[i][j]==1)
cout<<j<<" ";
}
}
cout<<endl;
}
return;
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(i==a&&j==b)
continue;
if(i==a&&c[i][j]==0)
c[i][j]=a+1;
if(j==b&&c[i][j]==0)
c[i][j]=a+1;
if(abs(double(i-a)/(j-b))==1&&c[i][j]==0)
c[i][j]=a+1;
}
}
for(int i=1;i<=n;i++){
if(c[a+1][i]==0){
int k=i;
dfs(c,a+1,i);
c[a+1][k]=0;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(c[i][j]==a+1+1)
c[i][j]=0;
}
}
}
}
return;
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
for(int s=0;s<=n;s++){
for(int t=0;t<=n;t++){
c[s][t]=0;
}
}
dfs(c,1,i);
}
cout<<target;
return 0;
}