#include<stdio.h>
#include<stack>
#include<algorithm>
#include<map>
using namespace std;

int h,w;
char m[512][512];

int AboveHeight(int x,int y)
{
	int res=0;
	while(m[y][x]=='.')
	{
		++res;
		--y;
	}
	return res;
}

int Solve(int y)
{
	typedef pair<int,int>P;
	int res=0, x;
	stack<P> s;
	for(x=1; x<=w+1; ++x)
	{
		int a=AboveHeight(x,y);
		if(s.empty() || s.top().first <= a)
			s.push(P(a,x));
		else
		{
			int lastX = -1;
			while(!s.empty() && s.top().first > a)
			{
				P p=s.top();
				s.pop();
				res = max(res, p.first * (x-p.second));
				lastX = p.second;
			}
			s.push(P(a,lastX));
		}
	}
	return res;
}

int main()
{
	while(scanf("%d%d",&h,&w),h)
	{
		memset(m,'*',sizeof(m));
		int x,y;
		int res=0;
		for(y=1; y<=h; ++y)
			scanf("%s",&m[y][1]);
		for(y=1; y<=h; ++y)
			res=max(res,Solve(y));
		printf("%d\n",res);
	}
	return 0;
}