#include <bits/stdc++.h>
using namespace std;
int largestRectangle(vector<int>& h) {
stack<int> st;
int maxArea = 0;
int n = h.size();
for (int i = 0; i <= n; i++) {
int cur = (i == n ? 0 : h[i]);
while (!st.empty() && cur < h[st.top()]) {
int height = h[st.top()];
st.pop();
int width = st.empty() ? i : i - st.top() - 1;
maxArea = max(maxArea, height * width);
}
st.push(i);
}
return maxArea;
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
vector<string> grid;
string line;
while (getline(cin, line)) {
if (!line.empty())
grid.push_back(line);
}
int n = grid.size();
int m = grid[0].size();
vector<int> height(m, 0);
int ans = 0;
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
if (grid[i][j] == '.')
height[j]++;
else
height[j] = 0;
}
ans = max(ans, largestRectangle(height));
}
cout << ans;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbGFyZ2VzdFJlY3RhbmdsZSh2ZWN0b3I8aW50PiYgaCkgewogICAgc3RhY2s8aW50PiBzdDsKICAgIGludCBtYXhBcmVhID0gMDsKICAgIGludCBuID0gaC5zaXplKCk7CgogICAgZm9yIChpbnQgaSA9IDA7IGkgPD0gbjsgaSsrKSB7CiAgICAgICAgaW50IGN1ciA9IChpID09IG4gPyAwIDogaFtpXSk7CgogICAgICAgIHdoaWxlICghc3QuZW1wdHkoKSAmJiBjdXIgPCBoW3N0LnRvcCgpXSkgewogICAgICAgICAgICBpbnQgaGVpZ2h0ID0gaFtzdC50b3AoKV07CiAgICAgICAgICAgIHN0LnBvcCgpOwogICAgICAgICAgICBpbnQgd2lkdGggPSBzdC5lbXB0eSgpID8gaSA6IGkgLSBzdC50b3AoKSAtIDE7CiAgICAgICAgICAgIG1heEFyZWEgPSBtYXgobWF4QXJlYSwgaGVpZ2h0ICogd2lkdGgpOwogICAgICAgIH0KCiAgICAgICAgc3QucHVzaChpKTsKICAgIH0KCiAgICByZXR1cm4gbWF4QXJlYTsKfQoKaW50IG1haW4oKSB7CiAgICBpb3M6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgICBjaW4udGllKG51bGxwdHIpOwoKICAgIHZlY3RvcjxzdHJpbmc+IGdyaWQ7CiAgICBzdHJpbmcgbGluZTsKCiAgICB3aGlsZSAoZ2V0bGluZShjaW4sIGxpbmUpKSB7CiAgICAgICAgaWYgKCFsaW5lLmVtcHR5KCkpCiAgICAgICAgICAgIGdyaWQucHVzaF9iYWNrKGxpbmUpOwogICAgfQoKICAgIGludCBuID0gZ3JpZC5zaXplKCk7CiAgICBpbnQgbSA9IGdyaWRbMF0uc2l6ZSgpOwoKICAgIHZlY3RvcjxpbnQ+IGhlaWdodChtLCAwKTsKICAgIGludCBhbnMgPSAwOwoKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKSB7CiAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBtOyBqKyspIHsKICAgICAgICAgICAgaWYgKGdyaWRbaV1bal0gPT0gJy4nKQogICAgICAgICAgICAgICAgaGVpZ2h0W2pdKys7CiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgIGhlaWdodFtqXSA9IDA7CiAgICAgICAgfQoKICAgICAgICBhbnMgPSBtYXgoYW5zLCBsYXJnZXN0UmVjdGFuZ2xlKGhlaWdodCkpOwogICAgfQoKICAgIGNvdXQgPDwgYW5zOwogICAgcmV0dXJuIDA7Cn0K