main = interact $ unlines . solve . read
n🔁s = concat $ replicate n s
solve 1 = ["4 4", "#.#.", "O#O#", "#.#.", "O#O#"]
solve 2 = ["4 4", "O##.", "#.O#", "#.#.", "O#O#"]
solve 3 = ["4 4", "O##O", "#..#", "#.#.", "O#O#"]
solve 6 = ["6 6", "O#O#O#", "#.#.#.", "#...O#", "O#.##.", "..#O#.", "..O#.."]
solve 7 = ["6 6", "O#O##O", "#.#..#", "#...O#", "O#.##.", "..#O#.", "..O#.."]
solve 11 = ["6 6", "O##O#O", "#..#.#", "O#...#", "#...#O", "#.#.O#", "O#O##."]
solve a = concat
  [ [ show (2 * h) ++ " " ++ show (2 * w) ]
  , [ w🔁".#", w🔁"#O" ]
  ,            f🔁[ ".#" ++ (w - 2)🔁".." ++ ".#", "#O" ++ (w - 2)🔁".." ++ "#O" ]
  , (h - 2 - f) 🔁[ ".#" ++ (w - 2)🔁".." ++ "#.", "#O" ++ (w - 2)🔁".." ++ "O#" ]
  , [ w🔁"#O", w🔁".#" ]
  ]
 where
  (w,h,f) = head $ [ (w,h,a-lo) | w <- [3..50], h <- [3..50], let lo = 4 * (w - 2) * (h - 2), lo <= a && a <= lo + h - 2 ]
