#include<iostream>
#include<algorithm>

int h, w;
char map[501][501];
int data[502][502];

int main(){
	while (std::cin >> h >> w, h || w){
		for (int i = 0; i < h; i++){
			for (int j = 0; j < w; j++){
				std::cin >> map[i][j];
				if (map[i][j] == '.')data[i + 1][j + 1] = 1;
			}
		}

		for (int i = 1; i <= h; i++){
			for (int j = 2; j <= w; j++){
				data[i][j] += data[i][j - 1];
			}
		}

		for (int i = 1; i <= w; i++){
			for (int j = 2; j <= h; j++){
				data[j][i] += data[j - 1][i];
			}
		}


		int max = 0;

		for (int i = 1; i <= w; i++){
			for (int j = 1; j <= h; j++){
				if (map[i][j] == '*')break;
				for (int ii = w; ii >= i; ii--){
					for (int jj = h; jj >= j; jj--){
						int idealres, realres;
						idealres = (ii - i + 1)*(jj - j + 1);
						if (idealres <= max)goto end;

						realres = data[jj][ii] - data[jj][i - 1] - data[j - 1][ii] + data[j - 1][i - 1];

						if (realres == idealres){
							max = std::max(max, realres);
							goto end;
						}
					}
				}
			end:;
			}
		}

		std::cout << max << std::endl;
	}

	return 0;
}