072 - Loop Railway Plan(★4) Editorial /

Time Limit: 2 sec / Memory Limit: 1024 MB

配点: 4

問題文

ABC 王国は HW 列のマス目であらわされます。各マスは山のマス平野のマスのどちらかです。上から i 行目、左から j 列目にあるマスが山のマスなら c_{i,j}# 、平野のマスなら c_{i,j}. です。

あなたは鉄道路線を作りたいです。鉄道路線の経路は、以下の条件をすべて満たす必要があります。

条件1 あるマスを始点とし、辺を共有して隣接するマスに移動することを k(3 \le k) 繰り返し、始点で終わる経路である。
条件2 k 回の移動について、移動先は相異なる。(始点と終点は一致してよい)
条件3 山のマスを通らない。

例えば左から 1 番目の鉄道路線は条件を満たしますが、左から 2, 3, 4, 5 番目の鉄道路線は条件を満たしません。

鉄道路線が通るマスの数としてあり得る最大値を求めてください。ただし、条件を満たす鉄道路線がない場合は、代わりにそれを報告してください。

制約

  • H, W は正整数
  • H \times W \leq 16
  • c_{i,j}# または .
  • c_{i,j}. である i,j (1 \leq i \leq H,1 \leq j \leq W)1 つ以上存在する

入力

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

H W
c_{1,1} c_{1,2} \cdots c_{1,W}
c_{2,1} c_{2,2} \cdots c_{2,W}
\vdots
c_{H,1} c_{H,2} \cdots c_{H,W}

出力

鉄道路線が通るマスの数の最大値を出力してください。

条件を満たす鉄道路線がない場合は、代わりに -1 を出力してください。


入力例 1

3 3
...
.#.
...

出力例 1

8

例えば、以下の鉄道路線は 8 個のマスを通ります。


入力例 2

1 6
......

出力例 2

-1

条件を満たす鉄道路線は存在しないため、-1 と出力すればよいです。


入力例 3

4 4
....
#...
....
...#

出力例 3

12

例えば、以下の鉄道路線は 12 個のマスを通ります。


Source Name

「競プロ典型90問」72日目