#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
bool check(int n,int row,int col,vector<vector<int>>&board){
    for(int i=0;i<row;i++){
        if(board[i][col]){
        return false;
    }
}
    for(int i=row,j=col;i>=0&&j>=0;i--,j--){
        if(board[i][j]){
        return false;
    }
}
    for(int i=row,j=col;i<n&&j>=0;i++,j--){
       if( board[i][j]){
        return false;
    }
    }
    return true;
}
void nqueen(int n,int row,vector<vector<int>>&board,vector<vector<int>>&solution){
    if(row==n){
        solution.push_back(board);
        return;
    }
    for(int col=0;col<n;col++){
        if(check(n,row,col,board)){
            board[row][col]=1;
        if(nqueen(n,row+1,board,solution)){
        return;
        }
        board[row][col]=0;
    }
    }
    return;
}
int main(){
    int n;
    cin>>n;
    vector<vector<int>>board(n,vector<int>(n));
    for(int i=0;i<n;i++){
        for(int j=0;j<n;j++){
            cin>>board[i][j];
        }
    }
    vector<vector<int>>solution;
    nqueen(n,0,board);
    for(int k=0;k<n;k++){
    for(int i=0;i<n;i++){
        for(int j=0;j<n;j++){
            if(board[i][j]){
                cout<<"Q"<<" ";
            }
            else{
                cout<<"-"<<" ";
        }
        }
    }
        cout<<endl;
    }
    return 0;
}