#include<cstdio>
const int N=2005;
int l[N][N],r[N][N],h[N][N],n,m,ans,mp[N][N],a[N][N];
char s[N];
int max(int a,int b){return a>b?a:b;}
int min(int a,int b){return a<b?a:b;}
int main(){
//	freopen("ex.in","r",stdin);
	scanf("%d%d",&n,&m);
	for(int i=1;i<=n;++i){
		scanf("%s",s+1);
		for(int j=1;j<=m;++j) mp[i][j]=(s[j]=='#');
	}
	for(int i=1;i<n;++i) for(int j=2;j<=m;++j) if((mp[i][j]^mp[i+1][j])==(mp[i][j-1]^mp[i+1][j-1])) a[i][j]=1;
	for(int i=1;i<=n;++i) for(int j=1;j<=m;++j){
		if(a[i][j]==1) h[i][j]=h[i-1][j]+1,l[i][j]=l[i][j-1]+1;
		if(a[i][m-j+1]==1) r[i][m-j+1]=r[i][m-j+2]+1;
	}
	for(int i=1;i<=n;++i){
		for(int j=1;j<=m;++j){
			if(h[i][j]>1){
				l[i][j]=min(l[i][j],l[i-1][j]);
				r[i][j]=min(r[i][j],r[i-1][j]);
			}
			ans=max(ans,(l[i][j]+r[i][j])*(h[i][j]+1));
		}
	}
	printf("%d\n",max(ans,max(m,n)));
	return 0;
} 