#include<bits/stdc++.h>
using namespace std;
bool check(int row,int col,int n,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){
    if(row==n){
        return;
    }
    for(int col=0;col<n;col++){
      if(check(row,col,n,board)){
          board[row][col]=1;
          nqueen(col+1,n,board);
          board[row][col]=0;
          }    
    }
}
int main(){
    int n=4;
    <vector<vector<int>>board(n,vector<int>(n,0));
    vector<vector<vector<int>>> result(n,n);
    nqueen(0,n,board);
    for(int k=0;k<result.size();k++){
        for(int i=0;i<n;i++){
            for(int j=0;j<n;j++){
                if(result[k][i][j]){
                    cout<<"Q"<<" ";
                }
                else{
                    cout<<"-"<<" ";
                }
            }
        }
    }
 }