#include <bits/stdc++.h>
using namespace std;
void printAns(vector<vector<string>>& ans){
for(int i=0; i<ans.size(); i++){
for(int j=0; j<ans[i].size(); j++){
cout<<ans[i][j]<<'\n';
}
}
}
bool isValid(int row, int col, int n, vector<string>& res){
for(int i=0; i<col; i++){
if(res[row][i]=='Q') return false;
}
for(int i=row-1; i>=0; i--){
for(int j=col-1; j>=0; j--){
if(res[i][j]=='Q') return false;
}
}
for(int i=row+1; i<n; i++){
for(int j=col-1; j>=0; j--){
if(res[i][j]=='Q') return false;
}
}
return true;
}
void backTrack(int n, int col, vector<vector<string>>& ans, vector<string>& res){
if(col>=n){
ans.push_back(res);
return;
}
for(int i=0; i<n; i++){
if(isValid(i,col,n,res)){
res[i][col]='Q';
backTrack(n,col+1,ans,res);
res[i][col]='.';
}
}
}
int main(){
ios::sync_with_stdio(false);
cin.tie(0);
int n;
cin >> n;
vector<vector<string>> ans;
vector<string> res;
for(int i=0; i<n; i++){
string s(n,'.');
res.push_back(s);
}
backTrack(n,0,ans,res);
printAns(ans);
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp2b2lkIHByaW50QW5zKHZlY3Rvcjx2ZWN0b3I8c3RyaW5nPj4mIGFucyl7CiAgICBmb3IoaW50IGk9MDsgaTxhbnMuc2l6ZSgpOyBpKyspewogICAgICAgIGZvcihpbnQgaj0wOyBqPGFuc1tpXS5zaXplKCk7IGorKyl7CiAgICAgICAgICAgIGNvdXQ8PGFuc1tpXVtqXTw8J1xuJzsKICAgICAgICB9CiAgICB9Cn0KCmJvb2wgaXNWYWxpZChpbnQgcm93LCBpbnQgY29sLCBpbnQgbiwgdmVjdG9yPHN0cmluZz4mIHJlcyl7CiAgICBmb3IoaW50IGk9MDsgaTxjb2w7IGkrKyl7CiAgICAgICAgaWYocmVzW3Jvd11baV09PSdRJykgcmV0dXJuIGZhbHNlOwogICAgfQogICAgZm9yKGludCBpPXJvdy0xOyBpPj0wOyBpLS0pewogICAgICAgIGZvcihpbnQgaj1jb2wtMTsgaj49MDsgai0tKXsKICAgICAgICAgICAgaWYocmVzW2ldW2pdPT0nUScpIHJldHVybiBmYWxzZTsKICAgICAgICB9CiAgICB9CiAgICBmb3IoaW50IGk9cm93KzE7IGk8bjsgaSsrKXsKICAgICAgICBmb3IoaW50IGo9Y29sLTE7IGo+PTA7IGotLSl7CiAgICAgICAgICAgIGlmKHJlc1tpXVtqXT09J1EnKSByZXR1cm4gZmFsc2U7CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuIHRydWU7Cn0KCnZvaWQgYmFja1RyYWNrKGludCBuLCBpbnQgY29sLCB2ZWN0b3I8dmVjdG9yPHN0cmluZz4+JiBhbnMsIHZlY3RvcjxzdHJpbmc+JiByZXMpewoKICAgIGlmKGNvbD49bil7CiAgICAgICAgYW5zLnB1c2hfYmFjayhyZXMpOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICBmb3IoaW50IGk9MDsgaTxuOyBpKyspewogICAgICAgIGlmKGlzVmFsaWQoaSxjb2wsbixyZXMpKXsKICAgICAgICAgICAgcmVzW2ldW2NvbF09J1EnOwogICAgICAgICAgICBiYWNrVHJhY2sobixjb2wrMSxhbnMscmVzKTsKICAgICAgICAgICAgcmVzW2ldW2NvbF09Jy4nOwogICAgICAgIH0KICAgIH0KCn0KCmludCBtYWluKCl7CgogICAgaW9zOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwogICAgY2luLnRpZSgwKTsKCiAgICBpbnQgbjsKICAgIGNpbiA+PiBuOwogICAgdmVjdG9yPHZlY3RvcjxzdHJpbmc+PiBhbnM7CiAgICB2ZWN0b3I8c3RyaW5nPiByZXM7CgogICAgZm9yKGludCBpPTA7IGk8bjsgaSsrKXsKICAgICAgICBzdHJpbmcgcyhuLCcuJyk7CiAgICAgICAgcmVzLnB1c2hfYmFjayhzKTsKICAgIH0KCiAgICBiYWNrVHJhY2sobiwwLGFucyxyZXMpOwogICAgcHJpbnRBbnMoYW5zKTsKCiAgICByZXR1cm4gMDsKfQo=