#abc233g. [abc233_g]Strongest Takahashi

[abc233_g]Strongest Takahashi

問題文

NtimesNN \\times N のグリッドがあり、いくつかのマスにはブロックが置いてあります。
グリッドの情報は NN 個の文字列 S1,S2,dots,SNS_1,S_2,\\dots,S_N によって以下の形式で与えられます。

  • SiS_ijj 文字目が # のとき、グリッドの上から ii マス目、左から jj マス目にブロックがある。
  • SiS_ijj 文字目が . のとき、グリッドの上から ii マス目、左から jj マス目にブロックがない。

高橋くんは、以下の操作を 00 回以上好きなだけ行うことができます。

  • まず、 11 以上 NN 以下の整数 DD と、グリッド内の DtimesDD \\times D の部分正方形を選ぶ。
  • その後、体力 DD を消費して部分正方形内のブロックをすべて破壊する。

高橋くんがすべてのブロックを破壊するのに必要な体力の最小値を求めてください。

制約

  • NN は整数
  • 1leNle501 \\le N \\le 50
  • SiS_i#. のみからなる
  • Si=N|S_i|=N

入力

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

NN S1S_1 S2S_2 vdots\\vdots SNS_N

出力

答えを整数として出力せよ。


入力例 1

5
##...
.##..
#.#..
.....
....#

出力例 1

4

以下の部分正方形を選ぶことで、消費する体力を 44 にすることができ、これが最適です。

  • 上から 11 マス目、左から 11 マス目を左上とした、 3times33 \\times 3 の部分正方形
  • 上から 55 マス目、左から 55 マス目を左上とした、 1times11 \\times 1 の部分正方形

入力例 2

3
...
...
...

出力例 2

0

グリッドにブロックが 11 つもない場合もあります。


入力例 3

21
.....................
.....................
...#.#...............
....#.............#..
...#.#...........#.#.
..................#..
.....................
.....................
.....................
..........#.....#....
......#..###.........
........#####..#.....
.......#######.......
.....#..#####........
.......#######.......
......#########......
.......#######..#....
......#########......
..#..###########.....
.........###.........
.........###.........

出力例 3

19