지뢰 찾기

시간 제한1초메모리 제한128 MB

문제

지뢰찾기는 $n \times n$ 크기의 격자에서 진행한다. $m$개의 지뢰가 서로 다른 칸에 하나씩 숨겨져 있다.

플레이어는 격자의 칸을 하나씩 골라 연다.

  • 지뢰가 있는 칸을 열면 플레이어는 진다.
  • 지뢰가 없는 칸을 열면, 그 칸에는 상하좌우와 대각선으로 인접한 8개의 칸 가운데 지뢰가 놓인 칸의 개수(0 이상 8 이하)가 나타난다.

플레이어가 지뢰가 있는 $m$개의 칸만 남기고 나머지 안전한 칸을 모두 열면 이긴다. 남은 $m$개의 칸은 반드시 모두 지뢰이다.

당신이 할 일은 일부만 진행된 게임의 정보를 읽어, 그에 해당하는 격자의 현재 상태를 출력하는 것이다.

입력

첫째 줄에 격자의 크기를 나타내는 양의 정수 $n$이 주어진다 ($1 \le n \le 10$).

다음 $n$개의 줄에는 지뢰의 배치가 주어진다. 각 줄은 한 행을 나타내는 $n$개의 문자로 이루어지며, 온점(.)은 지뢰가 없는 칸, 별표(*)는 지뢰가 있는 칸이다.

이어지는 $n$개의 줄에는 각 칸이 열렸는지를 나타내는, 길이가 $n$인 문자열이 주어진다. 영소문자 x는 이미 열린 칸, 온점(.)은 아직 열리지 않은 칸이다.

출력

격자의 현재 상태를 $n$개의 줄로 출력한다.

  • 지뢰가 없으면서 열린 칸에는 인접한 지뢰의 개수(0 이상 8 이하)를 출력한다.
  • 만약 지뢰가 있는 칸이 하나라도 열렸다면, 지뢰가 있는 모든 칸을 별표(*)로 출력한다.
  • 그 외의 모든 칸은 온점(.)으로 출력한다.