#include <cstdio>
#include <cstring>
#include <algorithm>
#define MAXN 2010
using namespace std;

int n,m;
int a[MAXN][MAXN],b[MAXN],s[MAXN];
int p[MAXN][2];

void sort(){
	static int cnt[MAXN];
	memset(cnt,0,sizeof cnt);
	for(int i=1;i<=m;i++) cnt[b[i]]++;
	for(int i=1;i<=n+1;i++) cnt[i]+=cnt[i-1];
	for(int i=m;i>=1;i--) s[cnt[b[i]]--]=i;
}

int gao(int l){
	for(int i=1;i<=m;i++)
		if(a[l][i]) b[i]=l+1;
	sort();
	memset(p,0,sizeof p);
	int res=0;
	for(int i=1;i<=m;i++){
		int x=s[i];
		p[x][0]=p[x][1]=x;
		if(p[x-1][0]){
			p[p[x-1][0]][1]=p[x][1];
			p[x][0]=p[p[x][1]][0]=p[x-1][0];
		}
		if(p[x+1][1]){
			p[p[x+1][1]][0]=p[x][0];
			p[x][1]=p[p[x][0]][1]=p[x+1][1];
		}
		res=max(res,(l-b[x]+2)*(p[x][1]-p[x][0]+2));
	}
	return res;
}

int main(){
#ifdef DEBUG
	freopen("F.in","r",stdin);
#endif
	scanf("%d%d",&n,&m);
	for(int i=1;i<=n;i++){
		static char str[MAXN];
		scanf("%s",str+1);
		for(int j=1;j<=m;j++)
			if(str[j]=='#')
				a[i][j]=1;
	}
	for(int i=1;i<n;i++)
		for(int j=1;j<m;j++)
			a[i][j]=a[i][j]^a[i+1][j]^a[i][j+1]^a[i+1][j+1];
	int ans=max(n,m);
	n--; m--;
	for(int i=1;i<=m;i++) b[i]=1;
	for(int i=1;i<=n;i++) 
		ans=max(ans,gao(i));
	printf("%d\n",ans);
	return 0;
}
