P1081

Ural 1486 Equal squares

Ural 1486 Equal squares

给定一个 N×MN\times M 的小写字母矩阵,请在其中找出两个内容完全相同的 K×KK\times K 正方形子矩阵,并求最大的 KK。

两个正方形子矩阵可以重叠,但它们的左上角位置必须不同。

输入格式

第一行包含两个整数 N,MN,M,表示字符矩阵的行数和列数。

接下来 NN 行,每行包含 MM 个小写字母,描述该字符矩阵。

输出格式

输出最大的 KK。

如果不存在两个大小至少为 1×11\times 1 的相同正方形子矩阵,则输出 00。

样例输入

3 3
aaa
aaa
baa

样例输出

2

样例解释

两个相同正方形子矩阵的左上角坐标分别为 (1,1)(1,1) 和 (2,2)(2,2),边长均为 22。

数据范围

  • N≤500N\le 500,M≤500M\le 500;
  • 矩阵中的字符均为小写字母;
  • KK 为非负整数;存在重复正方形子矩阵时,KK 为正整数。

来源与许可

本题为 Ural 1486「Equal Squares」,题面与测试数据整理自 BZOJ。

样例 1

输入

3 3
aaa
aaa
baa

输出

2