#include <iostream>
using namespace std;
void dFS(int depth, int nQueens);
bool isCheck(int depth, int queenY);
void printBoard(int nQueens);
int Queens[12]={0};
int solveNum=0;
int main()
{
int input;
while(cin>>input)
{
if(input==0)
{
break;
}
dFS(1,input);
cout<<solveNum<<endl<<endl;
solveNum=0;
}
return 0;
}
void dFS(int depth, int nQueens)
{
if(depth==nQueens+1)
{
printBoard(nQueens);
solveNum++;
return;
}
for(int queenY=1;queenY<=nQueens;queenY++)
{
if(isCheck(depth,queenY))
{
Queens[depth]=queenY;
dFS(depth+1, nQueens);
}
Queens[depth]=0;
}
}
bool isCheck(int depth, int queenY)
{
for(int queenX=1;queenX<depth;queenX++)
{
if(Queens[queenX]==queenY)
{
return false;
}
int sideX = depth-queenX;
int sideY = queenY-Queens[queenX];
if(sideX==sideY || sideX==(-1)*sideY)
{
return false;
}
}
return true;
}
void printBoard(int nQueens)
{
for(int row=1;row<=nQueens;row++)
{
for(int column=1;column<=nQueens;column++)
{
if(column==Queens[row])
{
cout<<"Q";
}
else
{
cout<<"x";
}
}
cout<<endl;
}
cout<<endl;
}