#include <iostream>
#include <cstdio>
#include <vector>

using namespace std;

#define INF 1 << 16

int m[500][500];

int count(int x, int y) {
	if (x < 0 || y < 0) return 0;
	return m[y][x];
}

typedef pair<int, int> P;

P min(P p1, P p2) {
	return P( max(p1.first, p2.first), min(p1.second, p2.second) );
}

int main() {
	int H, W;
	while (cin >> H >> W, H || W) {
		for (int y = 0; y < H; ++y) {
			string str; cin >> str;
			for (int x = 0; x < W; ++x)
				m[y][x] = str[x] == '*';
		}

		int len[500][500] = {0};
		for (int y = 0; y < H; ++y) {
			if (!m[y][W-1]) len[y][W-1] = 1;
			for (int x = W-1; x; --x)
				if (!m[y][x-1]) len[y][x-1] = len[y][x]+1;
		}

		int ans = 0;
		for (int y = 0; y < H; ++y)
			for (int x = 0; x < W; ++x) {
				int w = INF;
				for (int y2 = y; y2 < H; ++y2) {
					int h = y2 - y + 1;
					w = min(w, len[y2][x]);
					ans = max(ans, w*h);
					if (!w) break;
				}
			}

		cout << ans << endl;
	}
}