#include <iostream>

using namespace std;
char Field[502][502];

void solve()
{
	int H, W;
	while(cin >> H >> W, H || W)
	{
		for(int i = 0; i < H + 1; ++i)
		{
			Field[i][0] = '*';
			Field[i][W + 1] = '*';
		}
		for(int i = 0; i < W + 1; ++i)
		{
			Field[0][i] = '*';
			Field[H + 1][i] = '*';
		}
		for(int i = 1; i < H + 1; ++i)
		{
			for(int j = 1; j < W + 1; ++j)
			{
				cin >> Field[i][j];
			}
		}
		int Max = 0;
		for(int i = 1; i < H + 1; ++i)
		{
			int square = 0;
			for(int j = 1; j < W + 1; ++j)
			{
				if(Field[i][j] == '.')
				{
					int pos_x = j;
					int pos_y = i;
					int width = 1;
					int height = 1;
					int max_width = 500;
					while(Field[pos_y][pos_x] == '.')
					{
						width = 1;
						while(Field[pos_y][pos_x] == '.')
						{
							if(max_width == width)
							{
								width++;
								break;
							}
							pos_x++;
							width++;
						}
						--width;
						if(max_width > width)
						{
							max_width = width;
						}
						square = width * height;
						if(square > Max)
						{
							Max = square;
						}
						pos_y++;
						height++;
						pos_x = j;
					}
				}
			}
		}
		cout << Max << endl;
	}
}

int main()
{
	solve();
	return(0);
}