#include <bits/stdc++.h>
using namespace std;
bool lie[20]={},first[20]={},second[20]={};
int s=0,n,li[15];
void print(){
for(int i=1;i<=n;i++){
cout<<li[i]<<' ';
}
cout<<endl;
}
void dps(int x){
if(x==n+1){
s++;
if(s<=3){
print();
}
return;
}
for(int i=1;i<=n;i++){
if(lie[i]==false&&first[x-i+n]==false&&second[x+i]==false){
lie[i]=first[x-i+n]=second[x+i]=true;
li[x]=i;
dps(x+1);
lie[i]=first[x-i+n]=second[x+i]=false;
}
}
return ;
}
int main(){
cin>>n;
dps(1);
cout<<s;
return 0;
}