407_D. Largest Submatrix 3_28637
You are given matrix a of size n × m, its elements are integers. We will assume that the rows of the matrix are numbered from top to bottom from 1 to n, the columns are numbered from left to right from 1 to m. We will denote the element on the intersecting of the i-th row and the j-th column as aij.

We'll call submatrix i1, j1, i2, j2 (1 ≤ i1 ≤ i2 ≤ n; 1 ≤ j1 ≤ j2 ≤ m) such elements aij of the given matrix that i1 ≤ i ≤ i2 AND j1 ≤ j ≤ j2. We'll call the area of the submatrix number (i2 - i1 + 1)·(j2 - j1 + 1). We'll call a submatrix inhomogeneous, if all its elements are distinct.

Find the largest (in area) inhomogenous submatrix of the given matrix.

Input

The first line contains two integers n, m (1 ≤ n, m ≤ 400) — the number of rows and columns of the matrix, correspondingly.

Each of the next n lines contains m integers aij (1 ≤ aij ≤ 160000) — the elements of the matrix.

Output

Print a single integer — the area of the optimal inhomogenous submatrix.

Examples

Input

3 3
1 3 1
4 5 6
2 6 1


Output

6


Input

3 4
5 2 3 1
3 3 5 3
4 4 4 5


Output

4


Input

2 6
1 2 3 4 5 6
8 6 7 8 9 1


Output

8
#include <bits/stdc++.h>
using namespace std;
inline int rd() {
  char c = getchar();
  while (!isdigit(c)) c = getchar();
  int x = c - '0';
  while (isdigit(c = getchar())) x = x * 10 + c - '0';
  return x;
}
inline void upmax(int& a, int b) {
  if (a < b) a = b;
}
const int maxn = 403;
int n, m;
int a[maxn][maxn], f[maxn][maxn], pre[maxn][maxn * maxn + 1];
void input() {
  n = rd(), m = rd();
  for (int i = 1, _ = n; i <= _; i++)
    for (int j = 1, _ = m; j <= _; j++) a[i][j] = rd();
}
void solve() {
  int ans = 0;
  for (int i = 1, _ = n; i <= _; i++) {
    for (int j = 1, _ = m; j <= _; j++) {
      upmax(f[j][j], pre[j][a[i][j]]);
      upmax(ans, i - f[j][j]);
    }
    for (int len = 1, _ = m - 1; len <= _; len++)
      for (int l = 1, _ = m - len; l <= _; l++) {
        int r = l + len;
        if (a[i][l] == a[i][r]) f[l][r] = i;
        upmax(f[l][r], max(f[l + 1][r], f[l][r - 1]));
        upmax(f[l][r], max(pre[r][a[i][l]], pre[l][a[i][r]]));
        upmax(ans, (i - f[l][r]) * (len + 1));
      }
    for (int j = 1, _ = m; j <= _; j++) pre[j][a[i][j]] = i;
  }
  printf("%d\n", ans);
}
int main() {
  input();
  solve();
  return 0;
}

2 6
1 2 3 4 5 6
8 6 7 8 9 1
 3 4
5 2 3 1
3 3 5 3
4 4 4 5
 3 3
1 3 1
4 5 6
2 6 1
 3 4
1 2 3 1
2 3 1 2
3 1 2 3
 1 34
30 22 1 10 8 5 3 9 22 34 5 2 26 21 13 30 9 29 10 13 34 32 17 32 17 17 11 23 26 23 22 15 6 17
 37 1
20
40
5
14
3
11
10
2
3
31
22
3
37
16
6
3
25
37
37
9
7
14
9
35
7
23
38
20
18
31
21
35
12
14
38
4
26
 20 2
43 59
80 3
59 77
61 32
13 37
20 22
76 35
39 46
46 72
37 61
58 78
34 22
58 26
39 79
39 21
46 60
47 62
30 34
70 39
16 64
 3 4
1 2 3 4
5 6 7 8
9 10 11 12
 5 5
8 7 9 4 6
8 10 7 5 8
4 4 2 4 10
10 10 5 8 10
7 1 7 2 6
 2 20
43 61 28 21 92 109 81 71 34 23 64 7 38 96 87 113 48 95 80 42
43 4 39 85 31 59 119 81 55 91 80 37 5 28 9 15 31 29 51 57
 5 5
1 2 3 4 5
2 3 4 5 1
3 4 5 1 2
4 5 1 2 3
5 1 2 3 4
 10 10
21 4523 95 50964 53 30 54 55999 26 16
55999 55999 25 4523 28 82 50964 66 4523 1
18 3 55999 81 50964 47 100 55999 98 50964
2 50964 45 24 76 14 36 4523 44 23
4523 4523 55999 62 55999 50964 77 46 78 79
69 42 65 50964 64 57 89 12 4523 85
38 50964 19 97 55999 50964 29 22 5 61
52 4523 55999 72 94 55999 9 84 87 50964
80 56 4523 55999 39 34 63 75 50964 91
55999 32 4 55999 41 68 43 93 50964 4523
 10 10
37 14 27 24 13 5 11 34 3 27
1 18 23 9 30 18 28 30 16 12
24 16 27 11 26 4 5 14 36 7
21 25 3 1 1 2 32 11 1 26
27 2 17 18 14 8 30 7 3 3
8 1 24 11 34 36 10 7 15 7
31 9 20 10 20 15 2 32 37 32
36 19 4 23 5 32 12 20 21 27
32 22 24 10 35 28 28 22 5 24
22 33 6 14 27 13 3 33 32 16
 10 10
52 99 7 91 34 76 13 9 83 46
79 88 98 10 28 66 61 48 2 26
1 17 20 70 51 14 24 81 96 77
47 32 71 86 42 56 80 92 75 4
95 74 33 41 94 49 3 72 31 100
15 50 44 12 84 6 40 54 43 90
68 5 23 78 63 82 59 64 57 16
37 69 58 30 8 21 87 22 62 67
25 29 85 55 73 93 45 38 18 35
89 53 65 36 11 39 97 19 27 60
 1 34
30 22 1 10 8 5 3 9 22 34 5 2 26 21 13 30 9 29 10 13 2 32 17 32 17 17 11 23 26 23 22 15 6 17
 37 1
20
40
5
14
3
11
10
2
3
31
22
3
37
16
6
3
25
37
37
14
7
14
9
35
7
23
38
20
18
31
21
35
12
14
38
4
26
 20 2
43 59
80 3
59 77
61 32
13 37
20 22
76 35
39 46
46 72
37 61
58 78
64 22
58 26
39 79
39 21
46 60
47 62
30 34
70 39
16 64
 3 4
1 2 3 4
5 6 7 15
9 10 11 12
 5 5
8 7 9 4 3
8 10 7 5 8
4 4 2 4 10
10 10 5 8 10
7 1 7 2 6
 2 20
43 61 28 21 92 109 81 71 34 23 64 7 38 96 87 113 48 95 80 42
43 4 39 45 31 59 119 81 55 91 80 37 5 28 9 15 31 29 51 57
 10 10
21 4523 95 50964 53 30 54 55999 26 16
55999 55999 25 4523 28 82 50964 66 4523 1
18 3 55999 81 50964 47 100 55999 98 50964
2 50964 45 24 76 14 36 4523 44 23
4523 4523 55999 62 55999 50964 77 46 78 79
69 42 65 50964 64 57 89 12 4523 85
38 50964 19 97 55999 50964 29 22 5 61
52 4523 55999 72 94 55999 9 84 87 50964
80 56 4523 55999 39 40 63 75 50964 91
55999 32 4 55999 41 68 43 93 50964 4523
 10 10
52 99 7 91 34 76 13 9 83 46
79 88 98 10 28 66 61 48 2 26
1 17 20 70 51 14 24 81 96 77
47 32 71 86 42 56 80 92 75 4
95 74 33 41 94 49 3 72 31 100
15 50 44 12 84 6 40 54 43 90
68 5 23 78 63 82 59 64 57 16
37 69 58 30 8 21 87 22 62 67
25 29 85 30 73 93 45 38 18 35
89 53 65 36 11 39 97 19 27 60
 3 4
5 2 3 1
3 6 5 3
4 4 4 5
 3 4
1 2 3 5
5 6 7 15
9 10 11 12
 10 10
21 4523 95 50964 53 30 54 55999 26 16
55999 55999 25 4523 28 82 50964 66 4523 1
18 3 55999 81 50964 47 100 55999 98 50964
2 50964 45 24 76 14 36 4523 44 23
4523 4523 55999 62 55999 76807 77 46 78 79
69 42 65 50964 64 57 89 12 4523 85
38 50964 19 97 55999 50964 29 22 5 61
52 4523 55999 72 94 55999 9 84 87 50964
80 56 4523 55999 39 40 63 75 50964 91
55999 32 4 55999 41 68 43 93 50964 4523
 10 10
52 99 7 91 34 76 13 9 83 46
79 88 98 10 28 66 61 48 2 26
1 17 20 70 51 14 24 12 96 77
47 32 71 86 42 56 80 92 75 4
95 74 33 41 94 49 3 72 31 100
15 50 44 12 84 6 40 54 43 90
68 5 23 78 63 82 59 64 57 16
37 69 58 30 8 21 87 22 62 67
25 29 85 30 73 93 45 38 18 35
89 53 65 36 11 39 97 19 27 60
 2 20
43 61 28 21 92 109 81 71 34 23 64 7 30 96 87 113 48 95 5 42
43 4 39 45 31 59 119 81 55 91 80 37 5 28 9 15 37 29 51 57
 10 10
52 99 7 91 34 76 13 9 83 46
79 88 98 10 28 66 61 48 2 26
1 17 20 70 51 14 24 11 96 77
47 32 71 86 42 56 80 92 75 4
56 74 33 41 94 49 3 72 31 100
15 50 44 12 84 6 40 54 43 90
68 5 23 78 63 82 59 64 57 16
37 69 58 30 8 21 87 22 62 67
25 29 85 30 73 93 45 38 18 35
89 53 65 36 6 39 50 19 27 60
 10 10
21 4523 95 50964 53 30 54 55999 26 23
55999 55999 25 2787 28 82 50964 66 4523 1
18 3 55999 81 50964 74 100 2584 98 50964
2 50964 45 24 76 14 36 4523 44 23
4523 4523 55999 62 55999 76807 77 46 78 79
69 42 65 50964 64 57 89 12 4523 85
38 50964 19 97 55999 50964 29 22 5 61
52 4523 55999 72 94 55999 9 84 87 50964
80 56 4523 55999 39 40 63 75 50964 91
55999 32 4 55999 34 68 43 93 50964 4523
 10 10
37 14 50 24 13 5 11 34 3 27
1 18 23 9 30 18 28 30 16 12
24 16 27 11 26 4 5 14 36 7
21 25 3 1 1 2 32 11 1 26
27 2 17 18 14 8 30 7 3 3
8 1 24 11 34 36 10 7 15 7
31 9 20 10 20 15 2 32 37 32
36 19 4 23 5 32 12 20 21 27
32 22 24 10 35 28 28 22 5 24
22 33 6 14 27 13 3 33 32 16
 1 34
30 22 1 10 8 5 3 9 11 34 5 2 26 21 13 30 9 29 10 13 2 32 17 32 17 17 11 23 26 23 22 15 6 17
 37 1
20
40
5
13
3
11
10
2
3
31
22
3
37
16
6
3
25
37
37
14
7
14
9
35
7
23
38
20
18
31
21
35
12
14
38
4
26
 20 2
43 59
80 3
59 77
61 32
13 37
20 22
76 35
39 46
46 72
37 61
58 78
64 22
58 26
39 79
39 21
46 60
47 62
30 34
31 39
16 64
 2 20
43 61 28 21 92 109 81 71 34 23 64 7 38 96 87 113 48 95 5 42
43 4 39 45 31 59 119 81 55 91 80 37 5 28 9 15 31 29 51 57
 1 34
30 22 1 10 8 5 3 9 11 34 5 2 26 21 13 30 9 29 10 13 2 32 17 32 17 17 11 46 26 23 22 15 6 17
 37 1
20
40
5
13
3
11
10
2
3
31
22
3
37
16
6
3
25
37
37
14
7
14
9
35
7
23
38
20
18
31
21
35
2
14
38
4
26
 20 2
43 59
80 3
59 77
61 32
13 37
20 22
76 35
39 46
46 72
37 61
58 125
64 22
58 26
39 79
39 21
46 60
47 62
30 34
31 39
16 64
 3 4
1 2 3 5
5 6 7 15
9 12 11 12
 2 20
43 61 28 21 92 109 81 71 34 23 64 7 30 96 87 113 48 95 5 42
43 4 39 45 31 59 119 81 55 91 80 37 5 28 9 15 31 29 51 57
 10 10
21 4523 95 50964 53 30 54 55999 26 16
55999 55999 25 4523 28 82 50964 66 4523 1
18 3 55999 81 50964 47 100 55999 98 50964
2 50964 45 24 76 14 36 4523 44 23
4523 4523 55999 62 55999 76807 77 46 78 79
69 42 65 50964 64 57 89 12 4523 85
38 50964 19 97 55999 50964 29 22 5 61
52 4523 55999 72 94 55999 9 84 87 50964
80 56 4523 55999 39 40 63 75 50964 91
55999 32 4 55999 34 68 43 93 50964 4523
 10 10
52 99 7 91 34 76 13 9 83 46
79 88 98 10 28 66 61 48 2 26
1 17 20 70 51 14 24 11 96 77
47 32 71 86 42 56 80 92 75 4
95 74 33 41 94 49 3 72 31 100
15 50 44 12 84 6 40 54 43 90
68 5 23 78 63 82 59 64 57 16
37 69 58 30 8 21 87 22 62 67
25 29 85 30 73 93 45 38 18 35
89 53 65 36 11 39 97 19 27 60
 37 1
20
40
5
13
3
11
10
2
3
31
22
3
37
16
6
3
25
36
37
14
7
14
9
35
7
23
38
20
18
31
21
35
2
14
38
4
26
 20 2
43 59
80 3
59 77
61 32
13 37
20 22
76 35
39 46
46 72
37 61
58 125
64 22
58 26
39 79
39 21
8 60
47 62
30 34
31 39
16 64
 3 4
1 2 3 5
5 7 7 15
9 12 11 12
 10 10
21 4523 95 50964 53 30 54 55999 26 16
55999 55999 25 4523 28 82 50964 66 4523 1
18 3 55999 81 50964 74 100 55999 98 50964
2 50964 45 24 76 14 36 4523 44 23
4523 4523 55999 62 55999 76807 77 46 78 79
69 42 65 50964 64 57 89 12 4523 85
38 50964 19 97 55999 50964 29 22 5 61
52 4523 55999 72 94 55999 9 84 87 50964
80 56 4523 55999 39 40 63 75 50964 91
55999 32 4 55999 34 68 43 93 50964 4523
 10 10
52 99 7 91 34 76 13 9 83 46
79 88 98 10 28 66 61 48 2 26
1 17 20 70 51 14 24 11 96 77
47 32 71 86 42 56 80 92 75 4
95 74 33 41 94 49 3 72 31 100
15 50 44 12 84 6 40 54 43 90
68 5 23 78 63 82 59 64 57 16
37 69 58 30 8 21 87 22 62 67
25 29 85 30 73 93 45 38 18 35
89 53 65 36 11 39 50 19 27 60
 37 1
20
40
5
13
3
11
10
2
3
31
22
3
37
16
6
3
25
36
2
14
7
14
9
35
7
23
38
20
18
31
21
35
2
14
38
4
26
 20 2
43 59
80 3
59 77
61 32
13 37
20 22
76 35
39 46
46 72
37 61
58 125
64 22
58 26
39 79
39 21
8 60
47 62
30 34
31 39
12 64
 3 4
1 2 3 8
5 7 7 15
9 12 11 12
 2 20
43 61 28 21 92 109 81 71 34 23 64 7 30 96 87 113 35 95 5 42
43 4 39 45 31 59 119 81 55 91 80 37 5 28 9 15 37 29 51 57
 10 10
21 4523 95 50964 53 30 54 55999 26 23
55999 55999 25 4523 28 82 50964 66 4523 1
18 3 55999 81 50964 74 100 55999 98 50964
2 50964 45 24 76 14 36 4523 44 23
4523 4523 55999 62 55999 76807 77 46 78 79
69 42 65 50964 64 57 89 12 4523 85
38 50964 19 97 55999 50964 29 22 5 61
52 4523 55999 72 94 55999 9 84 87 50964
80 56 4523 55999 39 40 63 75 50964 91
55999 32 4 55999 34 68 43 93 50964 4523
 10 10
52 99 7 91 34 76 13 9 83 46
79 88 98 10 28 66 61 48 2 26
1 17 20 70 51 14 24 11 96 77
47 32 71 86 42 56 80 92 75 4
95 74 33 41 94 49 3 72 31 100
15 50 44 12 84 6 40 54 43 90
68 5 23 78 63 82 59 64 57 16
37 69 58 30 8 21 87 22 62 67
25 29 85 30 73 93 45 38 18 35
89 53 65 36 6 39 50 19 27 60
 37 1
20
40
5
13
3
11
10
2
3
31
22
3
37
26
6
3
25
36
2
14
7
14
9
35
7
23
38
20
18
31
21
35
2
14
38
4
26
 20 2
43 59
80 3
59 77
61 32
13 37
20 22
76 35
39 46
46 72
37 61
58 125
64 6
58 26
39 79
39 21
8 60
47 62
30 34
31 39
12 64
 3 4
1 2 3 8
5 5 7 15
9 12 11 12
 2 20
43 61 28 21 68 109 81 71 34 23 64 7 30 96 87 113 35 95 5 42
43 4 39 45 31 59 119 81 55 91 80 37 5 28 9 15 37 29 51 57
 10 10
21 4523 95 50964 53 30 54 55999 26 23
55999 55999 25 2787 28 82 50964 66 4523 1
18 3 55999 81 50964 74 100 55999 98 50964
2 50964 45 24 76 14 36 4523 44 23
4523 4523 55999 62 55999 76807 77 46 78 79
69 42 65 50964 64 57 89 12 4523 85
38 50964 19 97 55999 50964 29 22 5 61
52 4523 55999 72 94 55999 9 84 87 50964
80 56 4523 55999 39 40 63 75 50964 91
55999 32 4 55999 34 68 43 93 50964 4523
 20 2
43 59
80 3
59 77
61 32
13 37
20 22
76 24
39 46
46 72
37 61
58 125
64 6
58 26
39 79
39 21
8 60
47 62
30 34
31 39
12 64
 3 4
1 2 3 8
5 5 7 15
2 12 11 12
 2 20
43 61 28 21 68 109 81 71 34 23 64 7 30 96 87 113 35 95 5 42
63 4 39 45 31 59 119 81 55 91 80 37 5 28 9 15 37 29 51 57
 20 2
43 59
80 3
59 77
61 32
13 37
20 43
76 24
39 46
46 72
37 61
58 125
64 6
58 26
39 79
39 21
8 60
47 62
30 34
31 39
12 64
 10 10
21 4523 95 50964 53 30 54 55999 26 23
55999 55999 25 2787 28 82 50964 66 4523 1
18 3 55999 81 50964 74 100 2584 98 50964
2 50964 45 24 76 14 36 4523 44 23
4523 4523 55999 62 55999 76807 77 46 78 79
69 42 65 50964 64 105 89 12 4523 85
38 50964 19 97 55999 50964 29 22 5 61
52 4523 55999 72 94 55999 9 84 87 50964
80 56 4523 55999 39 40 63 75 50964 91
55999 32 4 55999 34 68 43 93 50964 4523
 20 2
43 59
80 3
59 77
61 32
13 37
20 43
76 24
39 58
46 72
37 61
58 125
64 6
58 26
39 79
39 21
8 60
47 62
30 34
31 39
12 64
 10 10
21 4523 95 50964 53 30 54 55999 26 23
55999 55999 25 2787 28 82 50964 66 4523 1
18 3 55999 139 50964 74 100 2584 98 50964
2 50964 45 24 76 14 36 4523 44 23
4523 4523 55999 62 55999 76807 77 46 78 79
69 42 65 50964 64 105 89 12 4523 85
38 50964 19 97 55999 50964 29 22 5 61
52 4523 55999 72 94 55999 9 84 87 50964
80 56 4523 55999 39 40 63 75 50964 91
55999 32 4 55999 34 68 43 93 50964 4523
 20 2
43 59
80 3
59 77
61 32
13 37
20 43
76 24
39 58
46 72
37 61
58 125
64 6
58 26
39 79
39 21
8 60
47 62
30 34
31 39
8 64
 10 10
21 4523 95 50964 53 30 54 55999 26 23
55999 55999 25 2787 28 82 50964 66 4523 1
18 3 55999 139 50964 74 100 2584 98 50964
2 50964 45 24 76 14 36 4523 44 23
4523 4523 55999 62 55999 76807 77 46 78 79
69 78 65 50964 64 105 89 12 4523 85
38 50964 19 97 55999 50964 29 22 5 61
52 4523 55999 72 94 55999 9 84 87 50964
80 56 4523 55999 39 40 63 75 50964 91
55999 32 4 55999 34 68 43 93 50964 4523
 20 2
43 59
80 3
59 77
61 32
13 37
20 43
76 24
39 58
46 72
37 61
58 42
64 6
58 26
39 79
39 21
8 60
47 62
30 34
31 39
8 64
 10 10
21 4523 95 71041 53 30 54 55999 26 23
55999 55999 25 2787 28 82 50964 66 4523 1
18 3 55999 139 50964 74 100 2584 98 50964
2 50964 45 24 76 14 36 4523 44 23
4523 4523 55999 62 55999 76807 77 46 78 79
69 78 65 50964 64 105 89 12 4523 85
38 50964 19 97 55999 50964 29 22 5 61
52 4523 55999 72 94 55999 9 84 87 50964
80 56 4523 55999 39 40 63 75 50964 91
55999 32 4 55999 34 68 43 93 50964 4523
 20 2
43 59
80 3
59 77
61 32
13 37
20 43
76 24
39 58
46 72
37 5
58 42
64 6
58 26
39 79
39 21
8 60
47 62
30 34
31 39
8 64
 10 10
21 4523 95 71041 53 30 54 55999 26 23
55999 55999 25 2787 28 82 50964 66 4523 1
18 3 55999 139 50964 74 100 2584 98 50964
2 50964 45 24 76 14 36 4523 44 23
4523 4523 55999 62 39342 76807 77 46 78 79
69 78 65 50964 64 105 89 12 4523 85
38 50964 19 97 55999 50964 29 22 5 61
52 4523 55999 72 94 55999 9 84 87 50964
80 56 4523 55999 39 40 63 75 50964 91
55999 32 4 55999 34 68 43 93 50964 4523
 20 2
43 59
80 3
59 77
61 32
13 37
20 43
76 24
39 58
46 72
37 5
58 42
64 6
58 26
39 79
39 21
8 60
47 62
44 34
31 39
8 64

8
 4
 6
 3
 11
 10
 14
 12
 6
 22
 5
 18
 18
 100
 11
 10
 14
 12
 6
 22
 18
 80
 4
 9
 21
 60
 20
 72
 24
 18
 11
 10
 14
 22
 11
 10
 14
 9
 22
 21
 80
 10
 14
 6
 21
 80
 10
 14
 6
 20
 21
 80
 10
 20
 6
 20
 21
 20
 6
 20
 20
 24
 20
 24
 20
 24
 20
 24
 20
 24
 20
