class EightQueen
  SUCCESS = 0
  FAIL = 1
  FREE = 0
  NOT_FREE = 1
  N=8

  def initialize
    @row = []
    @col = Array.new(N, FREE)
    @down = Array.new(2*N-1, FREE) # x - y + (N - 1)
    @up = Array.new(2*N-1, FREE)   # x + y
    @x = Array.new(8).map { Array.new(8, false) }

    gets.to_i.times do
      i, j = gets.split.map &:to_i
      @x[i][j] = true
    end
  end

  def print_queen
    (0...N).each do |i|
      (0...N).each do |j|
        if @x[i][j] && @row[i] != j
          return FAIL
        end
      end
    end

    (0...N).each do |i|
      (0...N).each do |j|
        print @row[i] == j ? 'Q' : '.'
      end
      puts
    end
    return SUCCESS
  end

  def solve(i)
    (0..7).each do |j|
      if @col[j] == FREE && @down[i-j+(N-1)] == FREE && @up[i+j] == FREE
        @row[i] = j
        @col[j] = @down[i-j+(N-1)] = @up[i+j] = NOT_FREE

        if (i == 7)
          return if print_queen == SUCCESS
        else
          solve(i + 1)
        end
        @row[i] = nil
        @col[j] = @down[i-j+(N-1)] = @up[i+j] = FREE
      end
    end
  end
end

eq = EightQueen.new
eq.solve(0)