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