#include <iostream>
using namespace std;

int main(){
	char in;
	int w,h,x,y,i;
	int myt[500][500],mdk;
	int obk_n;
	int obk_w[500],obk_h[500],obk_d[500];
	int max;
	
	while(1){
		cin>>w>>h;if(w==0 && h==0){break;}
		
		//-----
		for(y=0;y<h;y++){
			for(x=0;x<w;x++){
				cin>>in;
				if(in=='.'){
					if(y==0){myt[x][y]=1;}else{myt[x][y]=myt[x][y-1]+1;}
				}else{
					myt[x][y]=0;
				}
			}
		}
		//-----
		max=0;
		obk_n=0;
		for(y=h-1;0<=y;y--){
			for(x=0;x<w;x++){
				mdk=myt[x][y];
				for(i=obk_n-1;0<=i;i--){
					if(mdk<obk_h[i]){
						if(max<obk_w[i]*obk_h[i]){max=obk_w[i]*obk_h[i];}
						if(mdk<=obk_d[i]){obk_n--;continue;}else{obk_h[i]=mdk;}
					}
					obk_w[i]++;
				}
				if(obk_h[obk_n-1]<mdk){obk_w[obk_n]=1;obk_h[obk_n]=mdk;obk_d[obk_n]=obk_h[obk_n-1];obk_n++;}
				if(obk_n==0 && mdk!=0){obk_w[0]=1;obk_h[0]=mdk;obk_d[0]=0;obk_n=1;}
			}
			for(i=obk_n-1;0<=i;i--){
				if(max<obk_w[i]*obk_h[i]){max=obk_w[i]*obk_h[i];}
			}
		}
		cout<<max<<endl;
	}
	
	return 0;
}