#include <iostream>
#include <vector>
#include <string>
#include <stack>
#include <map>
#include <algorithm>
#include <iomanip>
#include <cmath>
using namespace std;

#define MAXV 1000000000
#define MOD 1000000007
using ll = long long;

bool operator<(const pair<int, int>& a, const pair<int, int>& b) {
	if (a.first == b.first) {
		return a.second < b.second;
	}
	return a.first < b.first;
}
int H, W; 


int main() {

	while (cin >> H >> W) {
		if (H == 0 && W == 0) break;
        vector<string> v;
		cin.ignore();
		for (int i = 0; i < H; ++i) {
			string s; 
			getline(cin, s);
			v.push_back(s);
		}

		int dp[510][510] = { 0 };
        for(int i=0; i<H; ++i){
            int x = 1;
            for(int j=W-1; j>=0; --j){
                if(v[i][j]=='.'){
                    dp[i][j] = x++;
                }else{
                    dp[i][j]=0;
                    x=1;
                }
            }
        }
        
        int maxV=0;
        for(int i=0; i<H; ++i){
            for(int j=0; j<W; ++j){
                //if(0<i && dp[i][j] == dp[i-1][j] || dp[i][j]==0) continue;
                
                int k = 1;
                int minV = dp[i][j];
                maxV = max(maxV, k*minV);
                while(i+k<H && dp[i+k][j]>0){
                    minV = min(minV, dp[i+k][j]);
                    k++;
                    maxV = max(maxV, k*minV);
                }
            }
        }
        cout << maxV << endl;
	}
	int a; cin >> a;
	int t; cin >> t;
}
