loop do
  h, w = gets.split.map(&:to_i)
  break if h==0 and w==0
  f = h.times.map{gets.chomp}
  hseq = Array.new(h){Array.new(w)}
  h.times.map{|y|
    hseq[y][0] = f[y][0]==?. ? 1 : 0
    (1...w).each{|x| hseq[y][x] = f[y][x]==?. ? hseq[y][x-1]+1 : 0}
  }
  ans = 0
  
  (w-1).downto(0){|x|
    h.times{|fy|
      tmp = w
      lim = h-fy
      (h-fy).times{|dy|
        tmp = [tmp, hseq[fy+dy][x]].min
        ans = [ans, tmp*(dy+1)].max
        break if tmp*lim<ans
      }
    }
  }
  p ans
end
