#include <bits/stdc++.h>
using namespace std;
const int maxn = 405;
const int maxval = 1e6;
int pos[maxn*maxn+5][maxn+5], dp[maxn+5][maxn+5], a[maxn+5][maxn+5];
vector<pair<int, int>> v[maxval+5];
int n, m;
void read() {
cin >> m >> n;
for (int i = 1; i<=m; ++i) {
for (int j = 1; j<=n; ++j) cin >> a[i][j];
}
}
void solve() {
for (int i = 1; i <= m; ++i) {
for (int j = 1; j <= n; ++j)
v[a[i][j]].push_back({i, j}); //val.push_back
}
int cnt = 0;
for (int i = 1; i < maxval; ++i) {
for (auto p : v[i])
a[p.first][p.second] = cnt;
if (!v[i].empty()) ++cnt;
}
int ans = 0;
for (int k = 1; k <= m; ++k) {
for (int i = n; i >= 1; --i) {
for (int j = i; j <= n; ++j) {
dp[i][j] = max({dp[i][j], pos[a[k][i]][i], pos[a[k][j]][j],
dp[i+1][j], dp[i][j-1]});
if (i < j) {
dp[i][j] = max({dp[i][j], pos[a[k][i]][j], pos[a[k][j]][i]});
if (a[k][i] == a[k][j]) dp[i][j] = k;
}
ans = max(ans, (j - i + 1) * (k - dp[i][j]));
}
}
for (int i = 1; i <= n; ++i)
pos[a[k][i]][i] = k;
}
cout << ans;
}
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
read();
solve();
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY29uc3QgaW50IG1heG4gPSA0MDU7CmNvbnN0IGludCBtYXh2YWwgPSAxZTY7CgppbnQgcG9zW21heG4qbWF4bis1XVttYXhuKzVdLCBkcFttYXhuKzVdW21heG4rNV0sIGFbbWF4bis1XVttYXhuKzVdOwp2ZWN0b3I8cGFpcjxpbnQsIGludD4+IHZbbWF4dmFsKzVdOwppbnQgbiwgbTsKdm9pZCByZWFkKCkgewogICAgY2luID4+IG0gPj4gbjsKICAgIGZvciAoaW50IGkgPSAxOyBpPD1tOyArK2kpIHsKICAgICAgICBmb3IgKGludCBqID0gMTsgajw9bjsgKytqKSBjaW4gPj4gYVtpXVtqXTsKICAgIH0KfQp2b2lkIHNvbHZlKCkgewogICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbTsgKytpKSB7CiAgICAgICAgZm9yIChpbnQgaiA9IDE7IGogPD0gbjsgKytqKQogICAgICAgICAgICB2W2FbaV1bal1dLnB1c2hfYmFjayh7aSwgan0pOyAvL3ZhbC5wdXNoX2JhY2sKICAgIH0KICAgIGludCBjbnQgPSAwOwogICAgZm9yIChpbnQgaSA9IDE7IGkgPCBtYXh2YWw7ICsraSkgewogICAgICAgIGZvciAoYXV0byBwIDogdltpXSkKICAgICAgICAgICAgYVtwLmZpcnN0XVtwLnNlY29uZF0gPSBjbnQ7CiAgICAgICAgaWYgKCF2W2ldLmVtcHR5KCkpICsrY250OwogICAgfQogICAgaW50IGFucyA9IDA7CiAgICBmb3IgKGludCBrID0gMTsgayA8PSBtOyArK2spIHsKICAgICAgICBmb3IgKGludCBpID0gbjsgaSA+PSAxOyAtLWkpIHsKICAgICAgICAgICAgZm9yIChpbnQgaiA9IGk7IGogPD0gbjsgKytqKSB7CiAgICAgICAgICAgICAgICBkcFtpXVtqXSA9IG1heCh7ZHBbaV1bal0sIHBvc1thW2tdW2ldXVtpXSwgcG9zW2Fba11bal1dW2pdLAogICAgICAgICAgICAgICAgICAgICAgICAgICBkcFtpKzFdW2pdLCBkcFtpXVtqLTFdfSk7CgogICAgICAgICAgICAgICAgaWYgKGkgPCBqKSB7CiAgICAgICAgICAgICAgICAgICAgZHBbaV1bal0gPSBtYXgoe2RwW2ldW2pdLCBwb3NbYVtrXVtpXV1bal0sIHBvc1thW2tdW2pdXVtpXX0pOwogICAgICAgICAgICAgICAgICAgIGlmIChhW2tdW2ldID09IGFba11bal0pIGRwW2ldW2pdID0gazsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBhbnMgPSBtYXgoYW5zLCAoaiAtIGkgKyAxKSAqIChrIC0gZHBbaV1bal0pKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBmb3IgKGludCBpID0gMTsgaSA8PSBuOyArK2kpCiAgICAgICAgICAgIHBvc1thW2tdW2ldXVtpXSA9IGs7CiAgICB9CgogICAgY291dCA8PCBhbnM7Cn0KaW50IG1haW4oKSB7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApOwogICAgY2luLnRpZSgwKTsgY291dC50aWUoMCk7CiAgICByZWFkKCk7CiAgICBzb2x2ZSgpOwogICAgcmV0dXJuIDA7Cn0K