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: def manhattand(arg1, arg2):
      x1 = arg1[0]
      y1 = arg1[1]
      x2 = arg2[0]
      y2 = arg2[1]
      return abs(x2 - x1) + abs(y1 - y2)
  
  
  H, W = map(int, input().split())
  
  list1 = []
  listk = []
  
  for i in range(H):
      a = input()
      list2 = []
      for j in range(W):
          list2.append(a[j])
          if a[j] == "#":
              listk.append((i, j))
      list1.append(list2)
  
  kld = []
  for k in range(H):
      for l in range(W):
          if (list1[k][l]) == ".":
              maxd = []
              for m in range(len(listk)):
                  maxd.append(manhattand(listk[m], (k, l)))
              kld.append(min(maxd))
  
  
  print(max(kld))
  
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"}]