import std.stdio;
import std.algorithm;
import std.string;
import std.range;
import std.array;
import std.conv;
import std.complex;
import std.math;
import std.ascii;
import std.bigint;
import std.container;

void main() {
	int h,w;
	int[] hw = array(map!(a => to!int(a))(readln().strip().split()));
	h = hw[0];
	w = hw[1];
	while((h|w) != 0) {
		auto s = new string[](h);
		foreach(i;0..h){
			s[i] = readln().strip();
		}
		auto dp = new int[][](h+1,w+1);
		foreach(i; 0..h) {
			foreach(j; 0..w) {
				if(s[i][j] == '.')
					dp[i+1][j+1] = dp[i+1][j]+1;
				else
					dp[i+1][j+1] = 0;
			}
		}
		int ans = 0;
		foreach(i; 0..h) {
			foreach(j; 0..w) {
				int maxS = 0;
				int minw = int.max;
				foreach_reverse(k; 0..i+1) {
					minw = min(minw, dp[k+1][j+1]);
					if(minw == 0)
						break;
					maxS = max(maxS, (i-k+1)*minw);
				}
				ans = max(ans, maxS);
			}
		}
		writeln(ans);

		hw = array(map!(a => to!int(a))(readln().strip().split()));
		h = hw[0];
		w = hw[1];
	}
}