#include <iostream>
#include <vector>
#include <string>
#include <algorithm>

using namespace std;

const int INF = 99999;

void p(vector<int> v){
	for(int i = 0; i < v.size(); i++){
		cout << (i?" ":"") << v[i];
	}
	cout << endl;
}

void p(vector<string> v){
	for(int i = 0; i < v.size(); i++){
		cout << (i?"\n":"") << v[i];
	}
	cout << endl;
}

void p(vector<vector<int>> v){
	for(int i = 0; i < v.size(); i++){
		p(v[i]);
	}
	cout << endl;
}

bool hasNoMark(string s, int left, int right, const char mark = '*'){
	for(int i = left; i <= right; i++){
		if(s[i] == '*') return false;
	}
	return true;
}

int main(){
	int h, w;
	while(cin >> h >> w){
		if( !h && !w ) break;

		vector<string> data;

		for(int i = 0; i < h; i++){
			string line;
			cin >> line;
			line += '*';
			data.push_back(line);
		}
		string line(w+1, '*');
		data.push_back(line);

		int recmax = 0;

		for(int i = 0; i < h; i++){
			for(int j = 0; j < w; j++){
				if(data[i][j] == '*') continue;
				int left = j;
				while(data[i][j] != '*') j++;
				int h = 1;
				while(hasNoMark(data[i+h], left, j-1)) h++;
				recmax = max((j-left)*h, recmax);
			}
		}

//		p(data);
		cout << recmax << endl;
	}

	return 0;
}#include <iostream>
#include <vector>
#include <string>
#include <algorithm>

using namespace std;

const int INF = 99999;

void p(vector<int> v){
	for(int i = 0; i < v.size(); i++){
		cout << (i?" ":"") << v[i];
	}
	cout << endl;
}

void p(vector<string> v){
	for(int i = 0; i < v.size(); i++){
		cout << (i?"\n":"") << v[i];
	}
	cout << endl;
}

void p(vector<vector<int>> v){
	for(int i = 0; i < v.size(); i++){
		p(v[i]);
	}
	cout << endl;
}

bool hasNoMark(string s, int left, int right, const char mark = '*'){
	for(int i = left; i <= right; i++){
		if(s[i] == '*') return false;
	}
	return true;
}

int main(){
	int h, w;
	while(cin >> h >> w){
		if( !h && !w ) break;

		vector<string> data;

		for(int i = 0; i < h; i++){
			string line;
			cin >> line;
			line += '*';
			data.push_back(line);
		}
		string line(w+1, '*');
		data.push_back(line);

		int recmax = 0;

		for(int i = 0; i < h; i++){
			for(int j = 0; j < w; j++){
				if(data[i][j] == '*') continue;
				int left = j;
				while(data[i][j] != '*') j++;
				int h = 1;
				while(hasNoMark(data[i+h], left, j-1)) h++;
				recmax = max((j-left)*h, recmax);
			}
		}

//		p(data);
		cout << recmax << endl;
	}

	return 0;
}