#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
int num[14][14];
struct zb{//记录每个点的坐标
int x;
int y;
}l[14];
int n,c;
void tianse(int x,int y,int a){//标记点
for(int i=1;i<=n;i++) num[x][i]=a;
for(int i=1;i<=n;i++) num[i][y]=a;
for(int i=x,j=y;i<=n,j<=n;i++,j++)num[i][j]=a;
for(int i=x,j=y;i>0,j>0;i--,j--)num[i][j]=a;
}
void dfs(int t){
if(t>n){//判断次数
if(c<3){
c++;
for(int i=1;i<=n;i++) cout<<l[i].x<<' ';//输出结果
cout<<endl;
}
else c++;
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(num[i][j]==0){
tianse(j,i,1);//寻找为0,不会被其他皇后吃的点,这里是标记找到点之后将皇后可以吃的点全部标记
l[t].x=i;
l[t].y=j;//标记
dfs(t+1);搜索
l[t].x=0;//回溯
l[t].y=0;
tianse(j,i,0);将点清零
}
else continue;
}
}
}
int main(){
cin>>n;
dfs(1);//回溯
cout<<c;
return 0;
}