#aising2019c. [aising2019_c]Alternating Path

[aising2019_c]Alternating Path

問題文

HHWW 列のマス目があり、各マスは黒または白に塗られています。

各マスの色を表す HH 個の長さ WW の文字列 S1,S2,...,SHS_1, S_2, ..., S_H が与えられます。 マス目の上から ii 番目、左から jj 番目 (1leqileqH,1leqjleqW1 \\leq i \\leq H, 1 \\leq j \\leq W) のマスが黒く塗られているとき 文字列 SiS_ijj 文字目は # となっており、白く塗られているとき文字列 SiS_ijj 文字目は . となっています。

黒く塗られたマス c1c_1 と白く塗られたマス c2c_2 の組であって、以下の条件を満たすものの個数を求めてください。

  • 上下左右に隣り合うマスへの移動を繰り返してマス c1c_1 からマス c2c_2 へ行く方法であって、通るマスの色が黒、白、黒、白・・・と交互になっているものが存在する。

制約

  • 1leqH,Wleq4001 \\leq H, W \\leq 400
  • Si=W|S_i| = W (1leqileqH1 \\leq i \\leq H)
  • ii (1leqileqH1 \\leq i \\leq H) に対して、文字列 SiS_i は文字 # と文字 . だけからなる。

入力

入力は以下の形式で標準入力から与えられる。

HH WW S1S_1 S2S_2 :: SHS_H

出力

答えを出力せよ。


入力例 1

3 3
.#.
..#
#..

出力例 1

10

上から ii 行目、左から jj 列目のマスを (i,j)(i, j) と書くとき、条件を満たすマスの組として ((1,2),(3,3))((1, 2), (3, 3))((3,1),(3,2))((3, 1), (3, 2)) などがあります。


入力例 2

2 4
....
....

出力例 2

0

入力例 3

4 3
###
###
...
###

出力例 3

6