import sys
import string
from collections import deque
base62_str = string.digits + string.ascii_uppercase + string.ascii_lowercase
all_data = sys.stdin.read().split('\n')
for line in all_data:
data = line.split()
row = len(data)
col = len(data[0])
dist = [[-2] * col for _ in range(row)]
q = deque()
for r in range(row):
for c in range(col):
if data[r][c] == '-':
dist[r][c] = -1
elif data[r][c] == '0':
dist[r][c] = 0
q.append((r, c))
def valid(r, c):
if r < 0 or r >= row or c < 0 or c >= col:
return False
return dist[r][c] == -1
while q:
r, c = q.popleft()
for dr, dc in [(-1, 0), (1, 0), (0, 1), (0, -1)]:
nr, nc = r + dr, c + dc
if valid(nr, nc):
dist[nr][nc] = dist[r][c] + 1
q.append((nr, nc))
ans = []
for r in range(row):
ans.append(''.join(data[r][c] if dist[r][c] <=0 or dist[r][c] >= len(
base62_str) else base62_str[dist[r][c]] for c in range(col)))
print(' '.join(ans))
Note that non-ascii characters in the above source code will be escaped (such as \x9f).