#2151. Building a Ski Course

Building a Ski Course

题目描述

农民约翰正在为即将到来的冬季奥运会把他的大场地变成滑雪场地。该字段的维度为M×N(1<=M,N<=100)\red{M ×N (1 <= M,N <= 100),}其预期的最终 组成由如下字符组成的M×N\red{M × N}网格描述:

每个字母都描述了一块单位面积的雪地应该如何修剪:"R\red{R}"代表"粗糙","S\red{S}"代表"光滑"(Moolympics的组织者认为,如果球场上既有粗糙的斑块,也有光滑的斑块,那么球场会更有趣)。

为了建造理想的球场,农夫约翰计划改装他的拖拉机,这样他就可以在田野(B<=M,B<=N)\red{(B <= M, B <= N)}的任意一块B×\red{B ×} B\red{B}的地方用完全光滑的雪或完全粗糙的雪来盖上。由于在每个邮票之间重置拖拉机需要很长时间,FJ\red{FJ}想让B\red{B}尽可能大。在B=1\red{B = 1}的情况下,他可以按预期在每个方格上标上R\red{R}S\red{S}来创建所需的滑雪场地。

然而,对于较大的B\red{B}值,它可能不再可能创建理想的课程设计。赛道上的每一个单元都必须在某个点上被FJ\red{FJ}的拖拉机盖 上印章;它不能保持默认状态。

请帮助FJ\red{FJ}确定他可以成功使用的B\red{B}的最大可能值

滑雪场的设计图是一个M×N(1<=M,N<=100)\red{M × N (1 <= M,N <= 100)}的矩阵,每个格子里用一个字母(表示粗糙)或者(表示 平整)。

比如:

RSRSSS\red{RSRSSS}

RSRSSS\red{RSRSSS}

RSRSSS\red{RSRSSS}

农民约翰的拖拉机每次可以将一块B×\red{B×}B(B<=M,B<=N)\red{B (B <= M, B <= N)}的区域全部标记B×B(B<=M,B<=N)\red{B×B (B <= M, B <= N)}R\red{R}或者S\red{S,}他希望B\red{B}能够尽量地大。一个格子可以被多次标记,下一次标记能够覆盖前一次标记,每个格子可以都至少被标记一次。

输入格式

第一行:两个用空格分隔的整数M\red{M}N\red{N}

2..M+1\red{2 . .M+1}行:由N\red{N}个字符组成的M\red{M}(\red{(}每个R\red{R}S)\red{S),}描述理想的滑雪场地设计。

输出格式

第一行:农民约翰可以使用B\red{B}的最大值来创建所需的球场模式。

样例

输入样例

3 6
RSRSSS
RSRSSS
RSRSSS

输出样例

3