만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

모자이크

시간 제한2초메모리 제한1024 MB

요약
각 칸에 주변 3x3 영역의 검은 칸 수가 적힌 R행 C열 행렬을 보고, 이를 만족하는 흑백 격자를 복원하거나 불가능하면 0을 출력합니다.
난이도

어려움10점 중 8점

유형
배열, 구현, 시뮬레이션
정답자
아직 제출이 없습니다

문제

모사는 추상화가다. 그녀의 그림은 모두 검은 칸과 흰 칸으로 이루어진 직사각형 격자로 나타낼 수 있다.

라이나는 미술품 수집가다. 그의 취미는 모사의 그림에서 검은 칸의 개수를 세는 것이다. 어느 날 그는 모사의 그림 중 RR행 CC열짜리 그림 하나를 가져가, R×CR \times C 행렬을 기록했다. 행렬의 rr행 cc열 값은 그림에서 rr행 cc열 칸을 중심으로 하는 3×33 \times 3 영역에 있는 검은 칸의 개수와 같다.

안타깝게도 다음 날 라이나는 그림이 사라진 것을 알았다! 지금 그에게 남은 것은 숫자 행렬뿐이다. 라이나가 모사의 그림을 복원하도록 도와줄 수 있는가?

라이나가 숫자를 적는 과정에서 실수했을 수도 있으므로, 주어진 행렬에 맞는 그림이 존재하지 않을 수도 있다.

입력

첫 줄에 정수 RR과 CC가 공백으로 구분되어 주어진다. 다음 RR줄에는 각각 CC개의 음이 아닌 정수가 공백으로 구분되어 주어지며, 각 수는 9를 넘지 않는다.

출력

그림이 존재하면 첫 줄에 1을 출력하고, 다음 RR줄에 그림을 출력한다. 각 줄은 길이가 CC인 문자열이며, B는 검은 칸, W는 흰 칸을 뜻한다. 조건을 만족하는 그림이 여러 개라면 그중 아무것이나 하나를 출력한다.

그림이 존재하지 않으면 첫 줄에 0을 출력한다.

제한

1≤R,C≤1 0001 \le R, C \le 1\,000

예제2

  1. 예제 1

    입력
    5 5
    4 6 6 6 4
    6 8 8 8 6
    6 8 8 8 6
    6 8 8 8 6
    4 6 6 6 4
    
    예상 출력
    1
    BBBBB
    BBBBB
    BBWBB
    BBBBB
    BBBBB
    
  2. 예제 2

    입력
    4 4
    0 1 0 1
    1 0 1 0
    0 1 0 1
    1 0 1 0
    
    예상 출력
    0