← Home
```go
package main

import (
	"fmt"
)

func main() {
	var k int
	if _, err := fmt.Scan(&k); err != nil {
		return
	}

	grid := [][]byte{
		[]byte("+------------------------+"),
		[]byte("|#.#.#.#.#.#.#.#.#.#.#.|D|)"),
		[]byte("|#.#.#.#.#.#.#.#.#.#.#.|.|"),
		[]byte("|#.......................|"),
		[]byte("|#.#.#.#.#.#.#.#.#.#.#.|.|"),
		[]byte("+------------------------+"),
	}

	for i := 0; i < k; i++ {
		col := 0
		row := 0
		if i < 4 {
			col = 0
			row = i
		} else {
			rem := i - 4
			col = 1 + rem/3
			r := rem % 3
			if r == 0 {
				row = 0
			} else if r == 1 {
				row = 1
			} else if r == 2 {
				row = 3
			}
		}
		grid[row+1][1+2*col] = 'O'
	}

	for _, line := range grid {
		fmt.Println(string(line))
	}
}
```