#include <iostream>
#include <stack>
#include <string>

using namespace std;

int sequence[500][501];

int main() {
  for (;;) {
    int H, W;
    cin >> H >> W;
    if (!H && !W) return 0;
    string cells[H];
    for (int i = 0; i < H; i++)
      cin >> cells[i];
    for (int i = 0; i < W; i++)
      sequence[0][i] = cells[0][i] == '.';
    for (int i = 1; i < H; i++)
      for (int j = 0; j < W; j++)
        sequence[i][j] = cells[i][j] == '.' ? sequence[i-1][j] + 1 : 0;
    int result = 0;
    for (int i = 0; i < H; i++) {
      int *row = sequence[i];
      stack<pair<int, int> > s;
      row[W] = 0;
      for (int j = 0; j <= W; j++)
        if (s.empty() || row[j] > s.top().first)
          s.push(make_pair(row[j], j));
        else if (row[j] < s.top().first) {
          int k;
          for (; !s.empty() && row[j] <= s.top().first; s.pop()) {
            k = s.top().second;
            result = max(result, (j - k) * s.top().first);
          }
          s.push(make_pair(row[j], k));
        }
    }
    cout << result << endl;
  }
}