cpp
#include<iostream>
using namespace std;
const int N=20;
bool col[N],dg[N],udg[N];
int n;
char q[N][N];
void dfs(int u){
if(u==n){
for(int i=0;i<n;i++) puts(q[i]);
puts("");
return ;
}
for(int i=0;i<n;i++){
if(!col[i] && !dg[u+i] && !udg[u+n-i]){
q[u][i]='Q';
col[i]=dg[u+i]=udg[u+n-i]=true;
dfs(u+1);
col[i]=dg[u+i]=udg[u+n-i]=false;
q[u][i]='.';
}
}
}
int main(){
scanf("%d",&n);
for(int i=0;i<n;i++)
for(int j=0;j<n;j++) q[i][j]='.';
dfs(0);
}