// 2011/03/18 Tazoe

#include <iostream>
using namespace std;

int main()
{
	while(true){
		int H, W;
		cin >> H >> W;
		if(H==0&&W==0)
			break;

		char rct[502][502];
		for(int i=0; i<=H+1; i++)
			for(int j=0; j<=W+1; j++)
				rct[i][j] = '*';

		for(int i=1; i<=H; i++)
			for(int j=1; j<=W; j++)
				cin >> rct[i][j];

		short wh[502][502][2];

		for(int i=1; i<=H; i++)
			for(int w=0, j=1; j<=W; j++)
				if(rct[i][j]=='*')
					wh[i][j][0] = w = 0;
				else
					wh[i][j][0] = ++w;

		for(int j=1; j<=W; j++)
			for(int h=0, i=1; i<=H; i++)
				if(rct[i][j]=='*')
					wh[i][j][1] = h = 0;
				else
					wh[i][j][1] = ++h;

		int rct_max = -1;
		for(int i=H; i>=1; i--){
			for(int j=W; j>=1; j--){
				if(wh[i][j][0]*wh[i][j][1]<=rct_max)
					continue;
				if(wh[i][j][0]>rct_max)
					rct_max = wh[i][j][0];
				if(wh[i][j][1]>rct_max)
					rct_max = wh[i][j][1];
				if(rct[i-1][j]=='.'&&rct[i][j-1]=='.'&&rct[i-1][j-1]=='.')
					for(int w2 = wh[i][j][0], h2=1; h2<=wh[i][j][1]; h2++){
						if(wh[i-h2+1][j][0]<w2)
							w2 = wh[i-h2+1][j][0];
						if(w2*h2>rct_max)
							rct_max = w2*h2;
					}
			}
		}

		cout << rct_max << endl;
	}

	return 0;
}