#include<cstdio>
#include<cstring>
#include<algorithm>
#define MN 2005
using namespace std;
inline int in(){
    int x=0;bool f=0; char c;
    for (;(c=getchar())<'0'||c>'9';f=c=='-');
    for (x=c-'0';(c=getchar())>='0'&&c<='9';x=(x<<3)+(x<<1)+c-'0');
    return f?-x:x;
}
int f[MN][MN],st[MN];
int n,m,res;
bool a[MN][MN],b[MN][MN];
char s[MN];
int main()
{
	n=in();m=in();
	for (int i=1;i<=n;++i){
		scanf("%s",s);
		for (int j=1;j<=m;++j) a[i][j]=(s[j-1]=='#');
	}res=max(n,m);
	for (int i=1;i<n;++i)
	for (int j=1;j<m;++j) b[i][j]=(a[i][j]^a[i+1][j]^a[i][j+1]^a[i+1][j+1]);
	for (int i=1;i<n;++i)
	for (int j=1;j<m;++j) if (!b[i][j]) f[i][j]=f[i-1][j]+1;else f[i][j]=0;
	for (int i=1;i<n;++i){
		int top=0;
		for (int j=1;j<=m;++j){
			while (top&&f[i][j]<=f[i][st[top]])
			res=max(res,(j-st[top-1])*(f[i][st[top]]+1)),--top;st[++top]=j;
		}
	}printf("%d",res);return 0; 
}