#include<iostream>
#include<cstring>
using namespace std;
int n,ans2;
int ansj[15];
bool h[15],l[15],duijiao[15];
void print(){
if(ans2<=3){
for(int i=1;i<=n;i++){
cout<<ansj[i]<<" ";
}
cout<<endl;
}
}
void dfs(int dep){
//dep代表搜索到第几行
if(dep==7){
ans2++;
print();
}
for(int j=1;j<=n;j++){
int mid=(2*n-1)/2+1;int dj=0;
if(dep>j){
dj=mid-(dep-j);
}else{
if(j>dep)
dj=mid+(j-dep);
}
if(!l[j]&&!duijiao[dj]&&!h[dep]){
l[j]=1;duijiao[dj]=1;h[dep]=1;
ansj[dep]=j;
dfs(dep+1);
l[j]=0;duijiao[dj]=0;h[dep]=0;
ansj[dep]=0;
}
}
}
int main(){
cin>>n;
dfs(n);
cout<<ans2;
return 0;
}
有救吗。