#include <iostream>
#include <algorithm>
#include <utility>
#include <stack>
using namespace std;


using P = pair<int, int>;


int h, w;
char sq[500][500];
int dp[500][501];
stack<P> hist;


void clear(stack<P> s){
	stack<P> emp;
	swap(s, emp);
}


int histMax(P r){
	int m = 0;
	P prev;
	while(!hist.empty() && hist.top().first >= r.first){
		prev = hist.top();
		hist.pop();
		m = max(m, prev.first * (r.second - prev.second));
	}
	hist.push({ r.first, prev.second });
	return m;
}


int histProcess(P r){
	if(hist.empty()){ hist.push(r); return 0; }
	if(hist.top().first == r.first) return 0;
	if(hist.top().first < r.first){ hist.push(r); return 0; }
	if(hist.top().first > r.first) return histMax(r);
	return 0;
}


int solve(){
	int m = 0;
	for (int y = 0; y < h; y++){
		for (int x = 0; x < w + 1; x++){
			if(x == w) dp[y][x] = 0;
			else if(sq[y][x] == '*') dp[y][x] = 0;
			else if(y == 0) dp[y][x] = 1;
			else dp[y][x] = dp[y-1][x] + 1;
			m = max(m, histProcess({ dp[y][x], x }));
		}
		clear(hist);
	}
	return m;
}


int main(){
	while(cin >> h >> w, h | w){
		for(int y = 0;y < h;y++){
			for(int x = 0;x < w;x++){
				cin >> sq[y][x];
			}
		}

		cout << solve() << endl;
	}

	return 0;
}