#include<bits/stdc++.h>
using namespace std;
#define int long long

int getS(vector<int>&H){
    int N=H.size();
    vector<int>L(N),R(N);
    stack<int>S;
    for(int i=0;i<N;i++){
        while(!S.empty()&&H[i]<=H[S.top()])S.pop();
        L[i]=S.empty()?0:(S.top()+1);
        S.push(i);
    }
    S=stack<int>();
    for(int i=N-1;i>=0;i--){
        while(!S.empty()&&H[i]<=H[S.top()])S.pop();
        R[i]=S.empty()?N:S.top();
        S.push(i);
    }
    int ma=0;
    for(int i=0;i<N;i++)ma=max(ma,(R[i]-L[i])*H[i]);
    return ma;
}

int H,W;
vector<int>V[500];
void solve(){
    fill_n(V,H,vector<int>(W,0));
    int ma=0;
    for(int i=0;i<H;i++){
        char fld[510];
        cin>>fld;
        for(int j=0;j<W;j++){
            if(fld[j]=='*')continue;
            V[i][j]=(i?V[i-1][j]:0)+1;
        }
        ma=max(ma,getS(V[i]));
    }
    cout<<ma<<endl;
}
signed main(){
    while(cin>>H>>W,H||W)solve();
    return 0;
}