You are given a 2D integer matrix mat of size m × n, where:
mat[r][c] == 1 means the cell at row r and column c is usable.mat[r][c] == 0 means it is not usable.Your task is to find two submatrices that satisfy the following conditions:
k.mat[r][c] == 1.Return the maximum possible area of each of the two squares. If it is not possible to choose two such squares, return 0.
Example 1:

Input: mat = [[1,1,1,0],[1,1,1,1],[0,0,1,1]]
Output: 4
Explanation:
The largest equal non-overlapping squares have side length k = 2 with area 4.
(0, 0) and covers cells (0, 0), (0, 1), (1, 0), and (1, 1).(1, 2) and covers cells (1, 2), (1, 3), (2, 2), and (2, 3).Thus, the answer is 4.
Example 2:

Input: mat = [[0,1],[1,0]]
Output: 1
Explanation:
The largest equal non-overlapping squares have side length k = 1 with area 1.
(0, 1) and covers cell (0, 1).(1, 0) and covers cell (1, 0).Thus, the answer is 1.
Example 3:

Input: mat = [[0,0],[0,1]]
Output: 0
Explanation:
There is only one usable cell, so it is impossible to choose two non-overlapping squares. Thus, the answer is 0.
Constraints:
mat.length == mmat[i].length == n1 <= m, n <= 500mat[i][j] is either 0 or 1.k. If two valid squares of side length k exist, two valid squares of every smaller side length also exist.k, record the minimum and maximum row and column among the top-left corners of all valid squares. Two of them can be disjoint if the difference between the maximum and minimum row is at least k, or the corresponding column difference is at least k.[[1,1,1,0],[1,1,1,1],[0,0,1,1]]
[[0,1],[1,0]]
[[0,0],[0,1]]