#include <bits/stdc++.h>
#define rep(a, b, c) for(int a = (b); a <= (c); ++ a)
#define per(a, b, c) for(int a = (b); a >= (c); -- a)
using namespace std;
template <class T> void rd(T &x){
  x = 0; int f = 1; char ch = getchar();
  while(ch < '0' || ch > '9'){ if(ch == '-') f = -1; ch = getchar(); }
  while(ch >= '0' && ch <= '9') x = (x << 3) + (x << 1) + ch - '0', ch = getchar();
  x *= f;
}

const int maxn = 2e3 + 5;
int col[maxn][maxn], up[maxn];
int n, m;
char s[maxn];
int q[maxn], top;

void sol(){
  int ans = max(n, m);
  rep(i, 1, m) up[i] = 1;
  rep(i, 2, n){
	rep(j, 2, m){
	  if(col[i - 1][j - 1] ^ col[i][j - 1] ^ col[i - 1][j] ^ col[i][j]) up[j - 1] = 1;
	  else up[j - 1] ++;
	}
	top = 0;
	rep(j, 1, m - 1){
	  while(top > 0 && up[q[top]] > up[j]){
		ans = max(ans, (j - q[top - 1]) * up[q[top]]);
		top --;
	  }
	  q[++ top] = j;
	}
	while(top > 0){
	  ans = max(ans, (m - q[top - 1]) * up[q[top]]);
	  top --;
	}
  }
  printf("%d\n", ans);
}

int main(){
  rd(n), rd(m);
  rep(i, 1, n){
	scanf("%s", s + 1);
	rep(j, 1, m) col[i][j] = s[j] == '#';
  }
  sol();
  return 0;
}
