#338. 子矩阵

子矩阵

题目描述

给定一个 N×MN \times M二维矩阵。请输出所有单元格均为 "1"\texttt{"1"}的第二大子矩阵的大小。

包含所有 "1"\texttt{"1"}意味着子矩阵的所有元素都是"1"\texttt{"1"}

矩阵可以定义为四个整数 x1,y1,x2,y2x_1, y_1, x_2, y_2,其中 1x1x2N1 \leq x_1 \leq x_2 \leq N1y1y2M1 \leq y_1 \leq y_2 \leq M。然后,矩阵由所有满足x1xx2x_1 \leq x \leq x_2y1yy2y_1 \leq y \leq y2的单元格 (xy)(x,y) 组成。如果矩阵中的所有单元格都是"1"\texttt{"1"},则这是一个有效的矩阵。

请找出第二大子矩阵的大小,如果存在属于其中一个子矩阵而不属于另一个子矩阵的单元格,则这两个子矩阵是不同的,第二大子矩阵是非严格的,他可能和最大子矩阵一样大。

输入描述

第一行输入包含两个空格分隔的整数 NNMM。 随后的 NN 行每行包含 MM 个字符 cijc_{ij}

1N,M10001 \leq N, M \leq 1000 N×M2N \times M \geq 2 cij"01"c_{ij} \in \texttt{"01"}

输出描述

输出一行包含代表答案的整数。如果满足要求的子矩阵不足 22 个,则输出 "0"\texttt{"0"}

样例

样例输入#1

1 2
01

样例输出#1

0

样例输入#2

1 3
101

样例输出#2

1