#include <iostream>
#include <stack>
#include <queue>
#include <set>
#include <map>
#include <vector>
#include <algorithm>
#include <cstring>
#include <cmath>
#include <numeric>
#include <cctype>

using namespace std;

#define loop(i,a,b) for(int i=(a); i<(int)(b); i++)
#define rep(i,b) loop(i,0,b)
#define all(c) (c).begin(), (c).end()
#define rall(c) (c).rbegin(), (c).rend()
#define pb push_back
#define mp make_pair

typedef unsigned uint;
typedef long long ll;
typedef unsigned long ulong;
typedef unsigned long long ull;

typedef vector<int> vi;
typedef vector<vi> vvi;
typedef vector<string> vs;
typedef vector<bool> vb;
typedef vector<vb> vvb;

typedef double Real;
const Real eps = 1e-9;
const Real inf = 1<<30;

int main(){
    int w, h;
    while (cin >> h >> w, w | h){
        vs G(h);
        vvi dp(h,vi(w));
        rep(y, h){ cin >> G[y]; }
        rep(y,h)rep(x,w){
            if(G[y][x] == '.') {
                if(x!=0) dp[y][x] = dp[y][x-1]+1;
                else dp[y][x] = 1;
            } else {
                dp[y][x] = 0;
            }
        }

        int res = 0;
        rep(x,w)rep(y,h){
            int tw = 0;
            int tmin = inf;
            loop(cy,y,h){
                tw++;
                tmin = min(tmin, dp[cy][x]);
                res = max(res, tw * tmin);
            }
        }
        cout << res << endl;
    }
}