D - Complexity

Time Limit: 5 sec / Memory Limit: 512 MB

配点 : 1000

問題文

この問題のメモリ制限はいつもと異なります。注意してください。

各マスが白か黒で塗られている長方形状のマス目に対して、 複雑さ を以下のように定めます。

  • すべてのマスが白、もしくはすべてのマスが黒のとき、複雑さは 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}. となっています。

与えられたマス目の複雑さを求めてください。

制約

  • 1 ≦ H,W ≦ 185
  • A_{ij}# または .

入力

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

H W
A_{11}A_{12}...A_{1W}
:
A_{H1}A_{H2}...A_{HW}

出力

与えられたマス目の複雑さを出力せよ。


入力例 1

3 3
...
.##
.##

出力例 1

2

1 列目と 2 列目の境目で 2 つのマス目に分割してみます。 1 列目だけからなるマス目の複雑さは 02,3 列目からなるマス目の複雑さは 1 なので、 このマス目の複雑さは 2 以下だと分かります。


入力例 2

6 7
.####.#
#....#.
#....#.
#....#.
.####.#
#....##

出力例 2

4

Score : 1000 points

Problem Statement

Note the unusual memory limit.

For a rectangular grid where each square is painted white or black, we define its complexity as follows:

  • If all the squares are black or all the squares are white, the complexity is 0.
  • Otherwise, divide the grid into two subgrids by a line parallel to one of the sides of the grid, and let c_1 and c_2 be the complexities of the subgrids. There can be multiple ways to perform the division, and let m be the minimum value of \max(c_1, c_2) in those divisions. The complexity of the grid is m+1.

You are given a grid with H horizontal rows and W vertical columns where each square is painted white or black. HW characters from A_{11} to A_{HW} represent the colors of the squares. A_{ij} is # if the square at the i-th row from the top and the j-th column from the left is black, and A_{ij} is . if that square is white.

Find the complexity of the given grid.

Constraints

  • 1 \leq H,W \leq 185
  • A_{ij} is # or ..

Input

Input is given from Standard Input in the following format:

H W
A_{11}A_{12}...A_{1W}
:
A_{H1}A_{H2}...A_{HW}

Output

Print the complexity of the given grid.


Sample Input 1

3 3
...
.##
.##

Sample Output 1

2

Let us divide the grid by the boundary line between the first and second columns. The subgrid consisting of the first column has the complexity of 0, and the subgrid consisting of the second and third columns has the complexity of 1, so the whole grid has the complexity of at most 2.


Sample Input 2

6 7
.####.#
#....#.
#....#.
#....#.
.####.#
#....##

Sample Output 2

4