#include<iostream>
using namespace std;
int n,m,len[1005][1005],id,ans,pos;
bool mp[1005][1005];
struct num{
int id1,val;
}sta[1005];
char temp;
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin>>temp;
if(temp=='F'){
mp[i][j]=1;
}
}
}
for(int i=1;i<=n;i++){
id=m+1;
for(int j=m;j>=1;j--){
if(!mp[i][j]){
id=j;
}
len[i][j]=id-j;
}
}
for(int j=1;j<=m;j++){
pos=0;
for(int i=1;i<=n+1;i++){
while(len[i][j]<sta[pos].val){
ans=max(ans,(i-sta[pos].id1)*sta[pos].val);
pos--;
}
pos++;
sta[pos].id1=i;sta[pos].val=len[i][j];
}
pos=0;
sta[0].id1=n+1;
for(int i=n;i>=0;i--){
while(len[i][j]<sta[pos].val){
ans=max(ans,(sta[pos].id1-i)*sta[pos].val);
pos--;
}
pos++;
sta[pos].id1=i;sta[pos].val=len[i][j];
}
}
cout<<ans*3;
return 0;
}