밭 물주기

허수아비를 제외한 모든 칸을 세 칸짜리 트로미노로 덮되 필드 경계를 넘는 타일이 R 곱하기 C개를 넘지 않게 배치합니다.

어려움8구현백트래킹조합론아직 제출이 없습니다시간 제한1초메모리 제한128 MB

문제

사라는 큰 직사각형 땅을 가진 농부이다. 땅은 5R5R개의 행과 5C5C개의 열로 된 칸 격자이다. 다섯 행마다 가로 울타리가 있고, 다섯 열마다 세로 울타리가 있다. 울타리는 땅을 R×CR \times C개의 5×55 \times 5 구역으로 나누며, 각 구역을 밭이라고 부른다.

새가 작물을 쪼는 것을 막으려고 어떤 밭에는 허수아비가 있다. 허수아비는 칸 하나를 차지하고, 각 5×55 \times 5 밭에는 허수아비가 많아 봐야 하나이다.

가뭄이 오면 사라는 살수기로 작물에 물을 준다. 살수기에는 주 노즐 하나와 옆 노즐 둘이 있다. 살수기 하나는 칸 세 개를 차지하고 그 세 칸에 물을 준다. 옆 노즐 둘은 주 노즐의 상하좌우로 맞닿은 칸에 놓인다. 따라서 살수기 모양은 다음 여섯 가지뿐이다.

  • 세로로 이어진 세 칸
  • 가로로 이어진 세 칸
  • 2×22 \times 2에서 칸 하나를 뺀 기역자 모양 (네 방향)

허수아비가 없는 모든 칸에는 살수기 노즐이 정확히 하나씩 있어야 한다. 허수아비가 있는 칸에는 노즐을 놓을 수 없다. 땅 밖에도 노즐을 놓을 수 없다.

한 살수기가 적시는 세 칸이 같은 5×55 \times 5 밭에 속할 필요는 없다. 이웃 밭에 걸쳐 있으면, 같은 살수기가 적시는 이웃 밭의 두 칸 사이 울타리에 구멍을 뚫어야 한다. 구멍을 뚫는 일은 힘드므로 구멍 수는 R×CR \times C 이하여야 한다.

올바른 배치는 항상 존재한다. 구멍 수가 R×CR \times C 이하인 올바른 배치를 출력한다.

입력

첫째 줄에 정수 RRCC가 주어진다. 1R,C1001 \le R, C \le 100.

다음 6R16R-1개 줄에 각각 6C16C-1개 문자가 주어진다. 밭과 그 사이 울타리를 나타낸다. 울타리는 실제로는 두께가 없지만 입력에서는 문자로 표시한다.

빈 칸은 ., 허수아비는 #(ASCII 35), 세로 울타리는 |(ASCII 124), 가로 울타리는 -, 울타리 교차점은 +이다.

출력

입력과 같은 크기의 격자를 출력한다. 울타리 구멍은 _로 표시한다. 입력의 빈 칸 .은 영문 소문자 a부터 z로 바꾸되 다음을 지킨다.

  1. 같은 살수기가 적시는 세 칸은 같은 글자이다. 밭이 달라도 같다.
  2. 같은 밭에서 맞닿은 두 칸이 다른 살수기에 속하면 글자가 달라야 한다.
  3. 다른 밭에서 맞닿은 두 칸이 다른 살수기에 속하고 그 사이 울타리에 구멍이 있으면 글자가 달라야 한다.
  4. 다른 밭에 속한 맞닿은 두 칸은, 위 규칙을 지키는 한 같은 글자여도 된다.

구멍 수는 R×CR \times C 이하여야 한다.