문제출처 : https://www.acmicpc.net/problem/7576
import sys
from collections import deque
def solve():
input = sys.stdin.readline
x,y = list(map(int,input().split()))
box=[]
q=deque()
for i in range(y):
box.append(list(map(int,input().split())))
for i in range(len(box)):
for j in range(len(box[i])):
if box[i][j] == 1:
q.append([i,j])
while q:
a,b = q.popleft()
direction=[1,-1]
for i in direction:
if 0<=a+i<y:
if box[a+i][b] == 0:
box[a+i][b] = box[a][b] + 1
q.append([a+i,b])
if 0<=b+i<x:
if box[a][b+i] == 0:
box[a][b+i] = box[a][b] + 1
q.append([a,b+i])
result = -999999
for i in range(len(box)):
for j in range(len(box[i])):
if box[i][j] == 0:
return print(-1)
elif box[i][j] > result:
result = box[i][j]
return print(result-1)
solve()