output_description: Print the answer.
  
  * * *
input_description: Input is given from Standard Input in the following format:
  
      
      
      H W
      S_1
      S_2
      :
      S_H
attempt: H, W = list(map(int, input().split()))
  S = []
  S_ = ""
  for i in range(H):
      tmp = input()
      S.append(tmp)
      S_ = S_ + tmp
  
  
  def dfs(h, w, mark, hs, ws, check, res):
      check[h][w] = 1
      for i, j in [[-1, 0], [0, -1], [0, 1], [1, 0]]:
          if 0 <= h + i < H and 0 <= w + j < W and check[h + i][w + j] == 0:
              if mark == "#" and S[h + i][w + j] == ".":
                  if [hs, ws, h + i, w + j] not in res:
                      res.append([hs, ws, h + i, w + j])
                  res, check = dfs(h + i, w + j, ".", hs, ws, check, res)
              elif mark == "." and S[h + i][w + j] == "#":
                  res, check = dfs(h + i, w + j, "#", hs, ws, check, res)
      return res, check
  
  
  l = []
  for i, c in enumerate(S_):
      if c == "#":
          l.append([int(i / W), int(i % W)])
  
  res = []
  for h, w in l:
      check = [[0 for j in range(W)] for i in range(H)]
      res, _ = dfs(h, w, "#", h, w, check, res)
  
  print(len(res))
  
problem_description: Statement
  
  There is a grid with H rows and W columns, where each square is painted black
  or white.
  
  You are given H strings S_1, S_2, ..., S_H, each of length W. If the square at
  the i-th row from the top and the j-th column from the left is painted black,
  the j-th character in the string S_i is `#`; if that square is painted white,
  the j-th character in the string S_i is `.`.
  
  Find the number of pairs of a black square c_1 and a white square c_2 that
  satisfy the following condition:
  
    * There is a path from the square c_1 to the square c_2 where we repeatedly move to a vertically or horizontally adjacent square through an alternating sequence of black and white squares: black, white, black, white...
samples: [{"input": "3 3\n    .#.\n    ..#\n    #..", "output": "10\n    \n\nSome of the pairs satisfying the condition are ((1, 2), (3, 3)) and ((3, 1),\n(3, 2)), where (i, j) denotes the square at the i-th row from the top and the\nj-th column from the left.\n\n* * *"}, {"input": "2 4\n    ....\n    ....", "output": "0\n    \n\n* * *"}, {"input": "4 3\n    ###\n    ###\n    ...\n    ###", "output": "6"}]