#include<bits/stdc++.h>
using namespace std;
int m1[30],m2[30],m3[30],ans[15],mark;
int n;
void state(int i,int j,int k){
ans[i]=j;
m1[j]=k;
m2[i+j]=k;
m3[i-j+n]=k;
}
void dfs(int step) {
if(step>n){
mark++;
if(mark<=3){
for(int l=1;l<=n;l++){
cout<<ans[l]<<' ';
}
cout<<endl;
}
else return ;
}
for(int j=1;j<=n;j++){
if(m1[j]||m2[step+j]||m3[step-j+n]) continue;
state(step,j,1);
dfs(step+1);
state(step,j,0);
}
}
int main() {
int n;
cin>>n;
dfs(1);
cout<<mark;
return 0;
}