/*****include*****/
#include <iostream>

/*****デバッグ定義*****/
//#define DEBUG
/*****マクロ定義*****/

/*****名前空間*****/
using namespace std;

/*****グローバル変数置き場*****/

/*****その他関数置き場*****/

/*****main関数*****/
int main(){
	/*****変数置き場*****/
	char (**field);
	int height,width;
	int y_ax,x_ax;
	int min_w,max_s,min_h;
	/*****処理部*****/
	while(1){
		cin >> height >> width;
		if(height == 0 && width == 0)	break;
		field = new char* [height];
		for(int i=0;i<height;i++)
			field[i] = new char [width];
		for(int y=0;y<height;y++)
			for(int x=0;x<width;x++)
				cin >> field[y][x];
		max_s = 0;
		for(int y=0;y<height;y++){
			for(int x=0;x<width;x++){
				if(field[y][x] == '.'){
					//cout << y << " " << x << endl;
					min_w = width;
					for(y_ax=y;y_ax<height;y_ax++){
						for(x_ax=x;x_ax<width;x_ax++){
							if(field[y_ax][x_ax] == '*'){
								//cout << x_ax-x << " " << min_w << endl;
								break;
							}
						}
						if(x_ax-x < min_w)	min_w = x_ax-x;
						if(field[y_ax][x] == '*'){
							break;
						}
					}
					//cout << min_w << " " << y_ax - y << endl;
					if(max_s < min_w * (y_ax-y)){
						max_s = min_w * (y_ax - y);
						//cout << "x:" << x << " y:" << y << " mw:" << min_w << " mh:" << y_ax-y << endl;
					}
					min_h = height;
					for(x_ax=x;x_ax<width;x_ax++){
						for(y_ax=y;y_ax<height;y_ax++){
							if(field[y_ax][x_ax] == '*'){
								//cout << x_ax-x << " " << min_w << endl;
								break;
							}
						}
						if(y_ax-y-1 < min_h)	min_h = y_ax-y;
						if(field[y][x_ax] == '*'){
							break;
						}
					}
					//cout << min_w << " " << y_ax - y << endl;
					if(max_s < min_h * (x_ax-x)){
						max_s = min_h * (x_ax - x);
						//cout << "x:" << x << " y:" << y << " mw:" << x_ax-x << " mh:" << min_h << endl;
					}
				}
			}
		}
		cout << max_s << endl;
	}
	/*****処理終了後*****/
	return 0;
}