AT_aising2019_c Alternating Path

Description

[problemUrl]: https://atcoder.jp/contests/aising2019/tasks/aising2019_c $ H $ 行 $ W $ 列のマス目があり、各マスは黒または白に塗られています。 各マスの色を表す $ H $ 個の長さ $ W $ の文字列 $ S_1,\ S_2,\ ...,\ S_H $ が与えられます。 マス目の上から $ i $ 番目、左から $ j $ 番目 ($ 1\ \leq\ i\ \leq\ H,\ 1\ \leq\ j\ \leq\ W $) のマスが黒く塗られているとき 文字列 $ S_i $ の $ j $ 文字目は `#` となっており、白く塗られているとき文字列 $ S_i $ の $ j $ 文字目は `.` となっています。 黒く塗られたマス $ c_1 $ と白く塗られたマス $ c_2 $ の組であって、以下の条件を満たすものの個数を求めてください。 - 上下左右に隣り合うマスへの移動を繰り返してマス $ c_1 $ からマス $ c_2 $ へ行く方法であって、通るマスの色が黒、白、黒、白・・・と交互になっているものが存在する。

Input Format

入力は以下の形式で標準入力から与えられる。 > $ H $ $ W $ $ S_1 $ $ S_2 $ $ : $ $ S_H $

Output Format

答えを出力せよ。

Explanation/Hint

### 制約 - $ 1\ \leq\ H,\ W\ \leq\ 400 $ - $ |S_i|\ =\ W $ ($ 1\ \leq\ i\ \leq\ H $) - 各 $ i $ ($ 1\ \leq\ i\ \leq\ H $) に対して、文字列 $ S_i $ は文字 `#` と文字 `.` だけからなる。 ### Sample Explanation 1 上から $ i $ 行目、左から $ j $ 列目のマスを $ (i,\ j) $ と書くとき、条件を満たすマスの組として $ ((1,\ 2),\ (3,\ 3)) $ や $ ((3,\ 1),\ (3,\ 2)) $ などがあります。