#include <stdio.h>

#define SIZE 8

int main() {
    int board[SIZE][SIZE] = {0};
    int queensPlaced = 0;

    while (queensPlaced < SIZE) {
        int minEliminated = 65;
        int bestRow = -1;
        int bestCol = -1;

        for (int r = 0; r < SIZE; r++) {
            for (int c = 0; c < SIZE; c++) {
                if (board[r][c] == 0) {
                    int eliminated = 0;
                    for (int i = 0; i < SIZE; i++) {
                        for (int j = 0; j < SIZE; j++) {
                            if (board[i][j] == 0 && !(i == r && j == c)) {
                                if (i == r || j == c || (i - j) == (r - c) || (i + j) == (r + c)) {
                                    eliminated++;
                                }
                            }
                        }
                    }
                    if (eliminated < minEliminated) {
                        minEliminated = eliminated;
                        bestRow = r;
                        bestCol = c;
                    }
                }
            }
        }

        if (bestRow != -1) {
            board[bestRow][bestCol] = 1;
            queensPlaced++;
            for (int i = 0; i < SIZE; i++) {
                for (int j = 0; j < SIZE; j++) {
                    if (board[i][j] == 0 && (i == bestRow || j == bestCol || (i - j) == (bestRow - bestCol) || (i + j) == (bestRow + bestCol))) {
                        board[i][j] = -1;
                    }
                }
            }
        } else {
            break;
        }
    }

    for (int r = 0; r < SIZE; r++) {
        for (int c = 0; c < SIZE; c++) {
            if (board[r][c] == 1) {
                printf(" Q ");
            } else {
                printf(" . ");
            }
        }
        printf("\n");
    }

    return 0;
}