#include <iostream>
#include <cstdio>
#include <vector>
#include <algorithm>
#include <complex>
#include <cstring>
#include <cstdlib>
using namespace std;

#define REP(i,n) for(int i=0;i<(int)n;++i)
#define FOR(i,c) for(__typeof((c).begin())i=(c).begin();i!=(c).end();++i)
#define ALL(c) (c).begin(), (c).end()

int main() {
  int h,w;
  while(cin>>h>>w,w+h) {
    char ba[w][h];
    REP(y,h)
      REP(x,w) 
        cin >> ba[x][y];
    int dp[w][h];
    memset(dp,0,sizeof(dp));
    int ans = 0;
    REP(y,h) {
      REP(x,w) {
        if (ba[x][y] == '.') {
          if (x>0&&y>0&&dp[x-1][y-1]>0) {
            int i=0;
            for(;i<dp[x-1][y-1];i++)
              if (ba[x][y-i-1] == '*' || ba[x-i-1][y] == '*')
                break;
            dp[x][y] = i+1;
          } else
            dp[x][y] = 1;
        }
        int a = dp[x][y];
        // cout << "["<< a<<"]";
        if (a==0) continue;
        int i;
        for (i=x-a; i>=0; i--) {
          int j;
          for(j=y-a+1; j<=y; j++)
            if (ba[i][j] == '*')
              break;
          if (j!=y+1)
            break;
        }
        // cout << (x-i)*a << " ";
        ans = max(ans,(x-i)*a);
        for (i=y-a; i>=0; i--) {
          int j;
          for(j=x-a+1; j<=x; j++) {
            if (ba[j][i] == '*')
              break;
          }
          if (j!=x+1)
            break;
        }
        // cout << (y-i)*a << "  ";
        ans = max(ans,(y-i)*a);
        // printf("[%d]",xx*yy);
      }
      // cout << endl;
    }
    cout << ans << endl;
  }
}