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 copy
  
  H, W = map(int, input().split())
  lst = []
  lst2 = [[0] * W for i in range(H)]
  lst3 = copy.deepcopy(lst2)
  aaa = True
  for h in range(H):
      l = [s for s in input()]
      if "." in l:
          aaa = False
      lst.append(l)
  
  if aaa:
      print(0)
      exit(0)
  
  
  def hoge(i, j):
      cnt = 0
      if i > 0 and lst[i - 1][j] != "#" and lst3[i - 1][j] == 0:
          lst[i - 1][j] = "#"
          lst3[i - 1][j] = 1
          cnt += 1
      if i + 1 < W and lst[i + 1][j] != "#" and lst3[i + 1][j] == 0:
          lst[i + 1][j] = "#"
          lst3[i + 1][j] = 1
          cnt += 1
      if j > 0 and lst[i][j - 1] != "#" and lst3[i][j - 1] == 0:
          lst[i][j - 1] = "#"
          lst3[i][j - 1] = 1
          cnt += 1
      if j + 1 < H and lst[i][j + 1] != "#" and lst3[i][j + 1] == 0:
          lst[i][j + 1] = "#"
          lst3[i][j + 1] = 1
          cnt += 1
      return cnt
  
  
  cnt = 0
  ret = 0
  while True:
      cnt = 0
      lst3 = copy.deepcopy(lst2)
      for j, h in enumerate(lst):
          for i, w in enumerate(h):
              if lst[i][j] == "#" and lst3[i][j] != 1:
                  cnt += 1
                  a = hoge(i, j)
                  cnt += a
      ret += 1
      if cnt >= H * W:
          break
  
  print(ret)
  
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"}]