AT_agc033_d [AGC033D] Complexity

Description

[problemUrl]: https://atcoder.jp/contests/agc033/tasks/agc033_d **この問題のメモリ制限はいつもと異なります。注意してください。** 各マスが白か黒で塗られている長方形状のマス目に対して、 **複雑さ** を以下のように定めます。 - すべてのマスが白、もしくはすべてのマスが黒のとき、複雑さは $ 0 $ である。 - そうでないとき、マス目のいずれかの辺に平行な直線でマス目を $ 2 $ つのマス目に分割し、それらのマス目の複雑さを $ c_1 $, $ c_2 $ とする。 分割の仕方は複数ありうるが、それらにおける $ \max(c_1,\ c_2) $ の最小値を $ m $ として、このマス目の複雑さを $ m+1 $ とする。 実際に縦 $ H $ 行、横 $ W $ 列の白黒に塗られたマス目が与えられます。 マス目の状態は $ A_{11} $ から $ A_{HW} $ の $ HW $ 個の文字で表されており、 上から $ i $ 行目、左から $ j $ 列目にあるマスが黒色のとき $ A_{ij} $ は `#`、 上から $ i $ 行目、左から $ j $ 列目にあるマスが白色のとき $ A_{ij} $ は `.` となっています。 与えられたマス目の複雑さを求めてください。

Input Format

N/A

Output Format

N/A

Explanation/Hint

### 制約 - $ 1\ ≦\ H,W\ ≦\ 185 $ - $ A_{ij} $ は `#` または `.` ### Sample Explanation 1 $ 1 $ 列目と $ 2 $ 列目の境目で $ 2 $ つのマス目に分割してみます。 $ 1 $ 列目だけからなるマス目の複雑さは $ 0 $、$ 2 $,$ 3 $ 列目からなるマス目の複雑さは $ 1 $ なので、 このマス目の複雑さは $ 2 $ 以下だと分かります。