#include <iostream>
#include <fstream>
#include <bits/stdc++.h>
#define VMAX 200005
using namespace std;
ifstream fin ("damesah.in");
ofstream fout ("damesah.out");
int tabla[14][14][14];
int regina[14];
int col[14], diag_prima[28], diag_sec[28];
int nr;
int d_i[]={-1,-1,0,1,1,1,0,-1};
int d_j[]={0,1,1,1,0,-1,-1,-1};
bool exista(int i, int j, int n)
{
for(int k=0;k<n;k++)
if(tabla[k][i][0] || tabla[k][0][j] || tabla[k][i-min(i,j)][j-min(i,j)])
return false;
return true;
}
void modifica_tabla(int i, int j, bool x,int index)
{
for(int k=0;k<index;k++)
{
tabla[k][i][0] = tabla[k][0][j] = tabla[k][i-min(i,j)][j-min(i,j)] = x;
}
}
void dama(int index,int n)
{
int i,j;
if(index==n)
{
if(nr==0)
{
for(int k = 0; k < n; k++)
{
cout<<regina[k]+1;
}
cout<<'\n';
}
nr++;
return;
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
if(exista(i,j,index))
{
regina[index] =j;
modifica_tabla(i,j,true,index);
dama(index+1,n);
modifica_tabla(i,j,false,index);
}
}
}
}
int main()
{
int n,m,i,j,k,t,nr,q,x,suma1,suma2;
fin>>n;
dama(0,n);
fout<<nr<<'\n';
return 0;
}