output_description: Print the number of operations that will be performed.
  
  * * *
input_description: Input is given from Standard Input in the following format:
  
      
      
      H W
      A_{11}A_{12}...A_{1W}
      :
      A_{H1}A_{H2}...A_{HW}
attempt: import sys
  
  input = sys.stdin.readline
  
  H, W = map(int, input().split())
  
  a = set()
  i = 0
  for h in range(H):
      s = list(input().strip())
      for c in s:
          if c == "#":
              a.add(i)
          i += 1
  # print(a)
  
  """
  m = 0
  for i in range(H*W):
      ni = H+W-2
      for j in a:
          ni = min(ni, abs(j//W-i//W) + abs(j%W -i%W))
  #        print(ni, abs(j-i)//W, abs(j%W -i%W))
      m = max(m, ni)
  print(m)
  """
  
problem_description: Statement
  
  You are given a grid of squares with H horizontal rows and W vertical columns,
  where each square is painted white or black. HW characters from A_{11} to
  A_{HW} represent the colors of the squares. A_{ij} is `#` if the square at the
  i-th row from the top and the j-th column from the left is black, and A_{ij}
  is `.` if that square is white.
  
  We will repeatedly perform the following operation until all the squares are
  black:
  
    * Every white square that shares a side with a black square, becomes black.
  
  Find the number of operations that will be performed. The initial grid has at
  least one black square.
samples: [{"input": "3 3\n    ...\n    .#.\n    ...", "output": "2\n    \n\nAfter one operation, all but the corners of the grid will be black. After one\nmore operation, all the squares will be black.\n\n* * *"}, {"input": "6 6\n    ..#..#\n    ......\n    #..#..\n    ......\n    .#....\n    ....#.", "output": "3"}]