#include<iostream>
using namespace std;
#define REP(i,b,n) for(int i=b;i<n;i++)
#define rep(i,n)   REP(i,0,n)
#define N 500
int width[N][N];
char m[N][N+1];

int solve(int r,int c){
  rep(i,r){
    if (m[i][0] == '.')width[i][0]=1;
    else width[i][0]=0;
    REP(j,1,c){
      if ( m[i][j]=='*')width[i][j]=0;
      else width[i][j]=width[i][j-1]+1;
    }
  }

  int ret=0;
  rep(j,c){
    rep(i,r){
      int minwidth=width[i][j];
      if ( minwidth==0)continue;
      ret=max(ret,minwidth);
      REP(k,i+1,r){
	minwidth=min(minwidth,width[k][j]);
	if ( minwidth == 0)break;
	ret=max(ret,(k-i+1)*minwidth);
      }
    }
  }
  return ret;
}

main(){
  int r,c;
  while(cin>>r>>c && r){
    rep(i,r)cin>>m[i];
    cout << solve(r,c)<<endl;
  }
}