#include<bits/stdc++.h>
using namespace std;
bool check(int row,int col,int n,vector<vector<int>> &board){
    for(int i=row;i>=0;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>=0&&j<n;i--,j++){
        if(board[i][j]){
            return false;
        }
    }
    return true;
}
void nqueen(int row,int n,vector<vector<int>> &board, vector<vector<vector<int>>> result){
    if(row==n){
        result.push_back(board);
        return;
    }
    for(int col=0;col<n;row++){
        if(check(row,col,n,board)){
            board[row][col]=1;
            nqueen(row+1,n,board,result)
             board[row][col]=0;
        }
       
    }
    
}
int main(){
    int n=5;
    vector<vector<int>> board(n,vector<int>(n,0));
    vector<vector<vector<int>>> result;
    nqueen(0,n,board,result);
    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;
}