#include<stdio.h>
#include<math.h>
int N;
int q[100];//用来存放算好皇后的位置,最左上角是(0,0)
void nq(int k);
int main()
{
scanf("%d",&N);
nq(0);//从第零行开始摆皇后
return 0;
}
void nq(int k)
{
int i;
if(k==N)
{for(i=0;i<N;i++)
printf("%5d",q[i]+1);
printf("\n");
return;
}
for(i=0;i<N;i++)
{//逐尝试第k个皇后的位置
int j;
for(j=0;j<k;j++)
{//和已经摆好的k个皇后的位置比较,看是否冲突
if((q[j])==i||abs(q[j]-i)==abs(k-j)){
break;//冲突,则试下一个位置
}
}
if(j==k){//当前选的位置i不冲突
q[k]=i;//将第k个皇后摆放在位置i
nq(k+1);
}
}//for(i=0;i<N;i++)
}