#include<iostream>
using namespace std;
const int N = 20;
int col[N];
int dg[N];
int udg[N];
int n;
char g[N][N];
void dfs(int u){
if(u == n){
for(int i = 0; i < n; i ++ ){
cout<<g[i]<<endl;
}
cout<<endl;
}
for(int i = 0; i < n; i ++ ){
if(!col[i] && !dg[u + i] && !udg[n - i + u]){
g[u][i] = 'Q';
col[i] = true, dg[u + i] = true, udg[n - i + u] = true;
dfs(u + 1);
col[i] = false, dg[u + i] = false, udg[n - i + u] = false;
g[u][i] = '.';
}
}
}
int main()
{
cin>>n;
for(int i = 0; i < n; i ++ ){
for(int j = 0; j < n; j ++ ){
g[i][j] = '.';
}
}
dfs(0);
return 0;
}