# 쉬운 최단거리 import sys from collections import deque input = sys.stdin.readline def find_target(grid, n, m): for i in range(n): for j in range(m): if grid[i][j] == 2: target = (i, j) return target return (-1, -1) def set_zero_land(grid, visited, n, m): for i in range(n): for j in range(m): if grid[i][j] == 0: visited[i][j] = 0 return def bfs(grid, target, n, m): dr = [1, -1, 0, 0] dc = [0, 0, 1, -1] visited = [[-1]*m for _ in range(n)] set_zero_land(grid, visited, n, m) q = deque([target]) visited[target[0]][target[1]] = 0 while q: r, c = q.popleft() for i in range(4): now_r, now_c = r+dr[i], c+dc[i] if now_r == target[0] and now_c == target[1]: continue if 0 <= now_r < n and 0 <= now_c < m and grid[now_r][now_c] != 0 and visited[now_r][now_c] == -1: q.append((now_r, now_c)) visited[now_r][now_c] = visited[r][c] + 1 return visited def solution(): n, m = map(int, input().rstrip().split()) grid = [list(map(int, input().rstrip().split())) for _ in range(n)] target = find_target(grid, n, m) result = bfs(grid, target, n, m) for i in range(n): print(*result[i]) return solution() """ 걸린 시간: 2:39~56 51~ 시간 복잡도: 해설: """