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 a_darker_and_darker(H, W, Grid):
      def is_in_field(row, col):
          return (0 <= row < H) and (0 <= col < W)
  
      grid, q = [[None] * W for _ in range(H)], []
      # 黒マスがどこにあるかを調べる。ついでにgridを初期化
      for row in range(H):
          for col in range(W):
              if Grid[row][col] == "#":
                  grid[row][col] = True
                  q.append((row, col))
              else:
                  grid[row][col] = False
  
      # '#'があるマスから上下左右に移動することを繰り返して任意のマスに到達する。
      # 何回繰り返せばすべてのマスに到達できるか？
      directions = ((-1, 0), (0, 1), (1, 0), (0, -1))  # 上右下左の隣接マスを指定
      ans = 0
      while q:
          tmp = []
          for row, col in q:
              for dr, dc in directions:
                  nr, nc = row + dr, col + dc
                  print(nr, nc)
                  if is_in_field(nr, nc) and (not grid[nr][nc]):
                      grid[nr][nc] = True
                      tmp.append((nr, nc))
          ans += 1 if tmp else 0
          q = tmp
      return ans
  
  
  H, W = [int(i) for i in input().split()]
  Grid = [input() for _ in range(H)]
  print(a_darker_and_darker(H, W, Grid))
  
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"}]