#include<bits/stdc++.h>
#define range(i,a,b) for(int i = (a); i < (b); i++)
#define rep(i,b) for(int i = 0; i < (b); i++)
#define all(a) (a).begin(), (a).end()
#define show(x)  cerr << #x << " = " << (x) << endl;
//const int INF = 1e8;
using namespace std;

int maximumRectangule(int h, int w, char m[505][505]){
    int c[505][505] = {{0}};
    rep(i,w){
        int cnt = 0;
        rep(j,h){
            if(m[j][i] == '.'){
                cnt++;
                c[j][i] = cnt;
            }else{
                cnt = 0;
            }
        }
    }
    rep(i,h) c[i][w] = 0;

    int ans = 0;
    rep(i,h){
        vector<pair<int, int>> v; //height, pos
        rep(j,w + 1){
            if(v.empty()) v.emplace_back(c[i][j],j);
            else{
                if(v.back().first < c[i][j]) v.emplace_back(c[i][j],j);
                else{
                    int target = j;
                    while(not v.empty() && v.back().first >= c[i][j]){
                        ans = max(ans, v.back().first * (j - v.back().second));
                        target = v.back().second;
                        v.pop_back();
                    }
                    v.emplace_back(c[i][j],target);
                }
            }
        }
    }
    return ans;
}

int main(){
    int h, w;
    while(cin >> h >> w,h){

        char m[505][505];
        rep(i,h) rep(j,w) cin >> m[i][j];

        cout << maximumRectangule(h,w,m) << endl;
    }
}