Problem D: 안전한 영역

Problem D: 안전한 영역

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 78  Solved: 39
[Submit] [Status] [Web Board] [Creator:]

Description

유정이는 지뢰밭에서 지뢰를 피해 목적지까지 가장 빨리 도달하는 길을 찾는 어플리케이션을 개발하려고 한다. 이를 위해서 먼저 지뢰에 영향을 받지 않는 안전한 영역이 어디인지를 찾는 프로그램을 먼저 작성해 보자. 지뢰는 ‘*’로 표시되며 이는 지뢰 자체와 그 주변을 밟기만 해도 터지는 지뢰이다. 

지뢰밭이 주어질 경우에 지뢰의 위치에 따라 지뢰 주변 셀(지뢰가 존재하는 셀에 가로, 세로, 대각선으로 인접한 셀)을 위험 지역으로 표시하고 지뢰의 영향을 받지 않는 셀을 안전한 지역으로 표시해 주는 프로그램을 작성하자.

Input

입력의 처음에는 테스트 케이스의 개수T(1 ≤ T ≤ 10)가 입력되며, 다음 줄 부터 T개의 테스트 케이스가 입력된다.

각 테스트 케이스의 첫 줄에는 M x N 크기(M: 높이, N: 폭)의 지뢰밭을 의미하는 M, N(3<= M, N <=20)이 입력되며, 다음 줄 부터 M개의 줄에 M x N 크기의 지뢰밭이 입력된다.

지뢰가 없는 지역은 ‘.’으로 표시되며 지뢰는 ‘*’로 표시된다.

Output

각 테스트 케이스마다 지뢰의 영향을 받지 않는 안전한 자리는 ‘0’으로, ‘*’로 표시되는 지뢰의 영향을 받는 주변 자리는 ‘1’로 구분하여 M x N 크기로 출력한다. 지뢰가 있는 자리는 원래대로 ‘*’을 출력한다. 

Sample Input Copy

2
3 4
....
.*..
....
5 5
*....
....*
.....
.....
*....

Sample Output Copy

1110
1*10
1110
*1011
1101*
00011
11000
*1000