#P16670. [Ctu2022]Shamans

[Ctu2022]Shamans

题目描述

Cimrman 召集了当地部落中的许多重要萨满。

他计划进行一项实验,研究强烈的鼓声能否在丛林中产生共振,从而抑制不受欢迎物种的生长。他需要从这些萨满中选出尽可能大的一组参加实验。

每位参加实验的萨满都必须获得一块由神圣食蚁兽皮制成的羊皮纸。萨满们要求每个人得到的羊皮纸形状和大小完全相同。

整张羊皮纸由若干个同样大小的正方形方格组成。任意两个相邻方格都完整共享一条边。

在某些位置,只需沿两个相邻方格之间的一条公共边切一刀,就能把当前羊皮纸分成两块。之后只允许在这些能够通过单次切割分离纸张的位置切割。

切割过程按照萨满资历从高到低进行:

  1. 最年长的萨满沿某个方格的一条边切一刀,切下自己的那一块;
  2. 第二年长的萨满在剩余部分上同样切下一块;
  3. 依此类推;
  4. 最后一位萨满不再切割,直接拿走最终剩余的部分。

所有切下的纸片以及最后剩下的纸片必须:

  • 具有相同面积;
  • 具有相同形状;
  • 每位萨满恰好得到一块。

比较形状时允许旋转,但不允许翻面,因为羊皮纸背面与正面不同。

给定整张羊皮纸的形状,请计算最多可以让多少名萨满参加实验。

图示

下图是样例 1 的最优切法。沿两条粗线切割,可以得到三块完全相同的羊皮纸。

输入格式

第一行包含两个整数 N,MN,M

1N,M300.1\le N,M\le300.

接下来 NN 行,每行包含 MM 个字符:

  • . 表示空白;
  • # 表示羊皮纸方格。

保证所有 # 方格组成一个非空的四连通区域。

输出格式

输出能够参加实验的萨满人数最大值。

样例 1

输入

5 7
..###..
...##..
#####.#
###.###
#...###

输出

3

样例 2

输入

7 5
.##..
#####
...##
...#.
...#.
...##
...##

输出

1