#include <cstdio>
#include <cassert>
#include <stack>

#define N 500
#define MAX(A,B) \
  ( (A) > (B) ? (A) : (B) )

using namespace std;

/** Application main entry point. */
int
main (
  int     argc,
  char  * argv[ ]
  )
{
  int i, j;

  for ( ; ; )
  {
    int d[ N ][ N ];
    int res = 0;
    int w, h;

    scanf ( " %d %d", &w, &h );
    if ( !( w | h ) ) break ;

    for ( i = 0; i < h; ++i )
    for ( j = 0; j < w; ++j )
    {
      char ch;

      scanf ( " %c", &ch );
      if ( ch == '.' )
      {
        d[ j ][ i ] = 1 + ( j > 0 ? d[ j - 1 ][ i ] : 0 );
      }
      else
      {
        d[ j ][ i ] = 0;
      }
    }

    for ( i = 0; i < w; ++i )
    {
      stack<int>  lis;

      for ( j = 0; j <= h; ++j )
      {
        for ( ; ; )
        {
          if ( lis.empty ( )
            || ( j < h
              && d[ i ][ lis.top ( ) ] <= d[ i ][ j ] ) ) break ;

          res = MAX( res, d[ i ][ lis.top ( ) ] * ( j - lis.top ( ) ) );
          lis.pop ( );
        }

        if ( j < h )  lis.push ( j );
      }
    }

    printf ( "%d\n", res );
  }

  return ( 0 );
}