#include <bits/stdc++.h>

#define rep_(v, f, l) for (int v = (f); v < (l); ++v)
#define rep(v, n) rep_(v, 0, n)
#define lep(v, n) rep_(v, 1, n + 1)

using namespace std;

typedef long long int lint;
typedef pair<int, int> pii;

static inline int in(){ int x; scanf("%d", &x); return x; }
static inline lint inl(){ lint x; scanf("%lld", &x); return x; }

int field[500][500];
int h, w;

int main()
{
    while (h = in(), w = in(), h || w){
        memset(field, 0, sizeof(field));
        rep(i, h){
            char line[512];
            scanf("%s", line);
            rep(j, w){
            	if (line[j] == '.') field[i][j] = (j == 0 ? 0 : field[i][j - 1]) + 1;
            }
        }
        int maxi = 0;
        rep(i, h){
        	for (int j = w - 1; j >= 0; j--){
        		int range = 512;
        		for (int k = 0; i + k < h && range > 0; ++k){
        			range = min(range, field[i + k][j]);
        			maxi = max(maxi, (k + 1) * range);
        		}
        	}
        }
        printf("%d\n", maxi);
    }
	return (0);
}