func_code_string: #include <bits/stdc++.h>   using namespace std;   const int maxn = 410;   int cl[maxn * maxn];   int po[maxn * maxn];   int pre[maxn * maxn * 2];   int cnt[maxn * maxn * 2];   short cc[maxn * maxn * 2];   short F[maxn][maxn];   short g[maxn][maxn];   int a[maxn][maxn];   int b[maxn][maxn];   int pos[maxn][maxn];   int n, m;   int find(int x) { return cnt[x] ? x : pre[x] = find(pre[x]); }   inline void init(int x, short f[][maxn], int a[][maxn]) {     int tot = maxn * maxn;     for (int i = x; i <= n; i++) {       for (int j = 1; j <= m; j++) {         cl[a[i][j]] = 0, po[a[i][j]] = a[i][j] + 1;         cc[a[i][j] + 1] = 0;         cnt[a[i][j] + 1] = 1;       }     }     for (int i = 0; i <= m; i++) f[x - 1][i] = 0;     for (int j = 1; j <= m; j++) {       for (int i = x; i <= n; i++) {         if (cl[a[i][j]] != j) {           pos[i][j] = tot;           cnt[tot] = 1;           cc[tot] = j;           pre[tot] = po[a[i][j]];           po[a[i][j]] = tot;           tot++;         } else {           pos[i][j] = po[a[i][j]];           cnt[pos[i][j]]++;         }         cl[a[i][j]] = j;       }     }     for (int i = n; i >= x; i--) {       for (int j = m; j > 0; j--) {         int p = pos[i][j];         cnt[p]--;         f[i][j] = cc[find(p)];       }     }     for (int i = x; i <= n; i++) {       for (int j = 1; j <= m; j++) {         f[i][j] = max(f[i][j], max(f[i - 1][j], f[i][j - 1]));       }     }   }   int main() {     int w = 0;     scanf( %d%d , &n, &m);     for (int i = 1; i <= n; i++) {       for (int j = 1; j <= m; j++) {         scanf( %d , &a[i][j]);         b[i][m - j + 1] = a[i][j];       }     }     int ans = 0;     for (int i = 1; i <= n; i++) {       init(i, F, a);       init(i, g, b);       for (int j = i; j <= n; j++) {         int r = 1;         for (int k = 1; k <= m; k++) {           for (int len = m - g[j][m - k + 1]; r <= len; r++) {             if (F[j][r] >= k) break;           }           ans = max(ans, (j - i + 1) * (r - k));         }       }     }     printf( %d n , ans);   }   