#include <iostream>
#include <sstream>
#include <vector>
#include <list>
#include <string>
#include <set>
#include <map>
#include <stack>
#include <queue>
#include <algorithm>
#include <numeric>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <climits>
using namespace std;

typedef vector <string> VS;
typedef vector <int> VI;
typedef vector <VI> VVI;

int main() {
    int h, w;
    while ( cin >> h >> w && h && w ) {
        VS lines;
        string line;
        for ( int i = 0; i < h; ++ i ) {
            cin >> line;
            lines.push_back( line );
        }
        VS M = lines;

        VVI W( h, VI( w, 0 ) );
        VVI H( h, VI( w, 0 ) );
        for ( int i = 0; i < h; ++ i ) {
            int t = 0;
            for ( int j = w - 1; j >= 0; -- j ) {
                if ( M[i][j] == '*' ) {
                    t = 0;
                } else {
                    t ++;
                    W[i][j] = t;
                }
            }
        }

        int answer = 0;
        for ( int i = 0; i < h; ++ i ) {
            for ( int j = 0; j < w; ++ j ) {
                if ( M[i][j] == '*' ) continue;
                int width = W[i][j];
                for ( int k = 0; i + k < h; ++ k ) {
                    width = min( width, W[i + k][j] );
                    answer = max( answer, ( k + 1 ) * width );
                }
            }
        }
        cout << answer << endl;
    }
    return 0;
}