#include <fstream>
#include <vector>
#include <iostream>
using namespace std;
ifstream fin("damesah.in");
ofstream fout("damesah.out");
int dimensiune, i, j, solutii;
void afis(int mregine[13][13], int dimensiune)
{
for (int i = 0; i < dimensiune; i++)
for(int j = 0; j < dimensiune; j++)
if (mregine[i][j])
fout << j+1 << ' ';
}
void atacpluslinie(int matac[13][13], int i, int dimensiune)
{
for (int k = 0; k < dimensiune; k++)
matac[i][k]++;
}
void atacpluscoloana(int matac[13][13], int j, int dimensiune)
{
for (int k = 0; k < dimensiune; k++)
matac[k][j]++;
}
void atacplusdiagonala(int matac[13][13], int i, int j, int dimensiune)
{
int a, b;
for (a = i-1, b = j-1; a >= 0 && b >= 0;a--, b--)
matac[a][b]++;
for (a = i-1, b = j+1; a>= 0 && b < dimensiune; a--, b++)
matac[a][b]++;
for (a = i+1, b = j+1; a< dimensiune && b < dimensiune; a++, b++)
matac[a][b]++;
for (a = i+1, b = j-1; a < dimensiune && b>= 0; a++, b--)
matac[a][b]++;
}
void atacminuslinie(int matac[13][13], int i, int dimensiune)
{
for (int k = 0; k < dimensiune; k++)
matac[i][k]--;
}
void atacminuscoloana(int matac[13][13], int j, int dimensiune)
{
for (int k = 0; k < dimensiune; k++)
matac[k][j]--;
}
void atacminusdiagonala(int matac[13][13], int i, int j, int dimensiune)
{
int a, b;
for (a = i-1, b = j-1; a >= 0 && b >= 0;a--, b--)
matac[a][b]--;
for (a = i-1, b = j+1; a>= 0 && b < dimensiune; a--, b++)
matac[a][b]--;
for (a = i+1, b = j+1; a< dimensiune && b < dimensiune; a++, b++)
matac[a][b]--;
for (a = i+1, b = j-1; a < dimensiune && b>= 0; a++, b--)
matac[a][b]--;
}
void backu(int mregine[13][13], int matac[13][13], int k, int dimensiune)
{
for (int i = 0; i< dimensiune; i++)
{
mregine[k][i] = 1;
atacpluslinie(matac, k, dimensiune);
atacpluscoloana(matac, i, dimensiune);
atacplusdiagonala(matac, k, i, dimensiune);
matac[k][i] -= 2;
if (matac[k][i] == 0)
{
if (k == dimensiune-1)
{
solutii++;
if (solutii == 1)
afis(mregine, dimensiune);
}
else
backu(mregine, matac, k+1, dimensiune);
}
mregine[k][i] = 0;
matac[k][i] += 2;
atacminuslinie(matac, k, dimensiune);
atacminuscoloana(matac, i, dimensiune);
atacminusdiagonala(matac, k, i, dimensiune);
}
}
int matac[13][13], mregine[13][13];
int main()
{
fin >> dimensiune;
backu(mregine, matac, 0, dimensiune);
fout << '\n' << solutii;
return 0;
}