#include<bits/stdc++.h>
#define _for(i,x,y) for(int i=x;i<=y;++i)
#define _rep(i,x,y) for(int i=x;i<y;++i)
#define _ref(i,x,y) for(int i=y;i>=x;--i)
using namespace std;
int down[205][205],L[205][205],n,m;
int mp[205][205];
int Isd[205][205][205];
int main(){
cin>>n>>m;
_for(i,1,n){
_for(j,1,m){
char c;
cin>>c;
if(c=='X') mp[i][j]=1;
else mp[i][j]=0;
}
}
for(int i=n;i>=1;--i){
_for(j,1,m){
if(!mp[i][j])down[i][j]=down[i+1][j]+1;
}
}
_for(i,1,n){
_for(j,1,m){
if(!mp[i][j])
L[i][j]=L[i][j-1]+1;
}
}
_for(i,1,n){
_for(j,1,m){
int t=i;
while(t+1<=n){
t++;
if(mp[t][j]) break;
Isd[i][j][L[t][j]]=t;
}
_ref(k,1,max(n,m)){
Isd[i][j][k]=max(Isd[i][j][k+1],Isd[i][j][k]);
}
}
}
int ans=0;
_for(i,1,n){
_for(j,1,m){
int t=m+1;
while(t-1>j){
t--;
int val=t-j+1;
if(L[i][t]>=val)ans=max(ans,val*min(down[i][j],Isd[i][t][val]));
}
}
}
cout<<ans<<'\n';
return 0;
}