#include <cstdio>
#include <stack>
int n, m, a[2005][2005], pos[2005][2005];
char buf[2005][2005];
std::stack<std::pair<int, int> > s;
int main() {
	std::scanf("%d%d", &n, &m);
	for (int i = 1; i <= n; i++) {
		std::scanf("%s", buf[i] + 1);
		for (int j = 1; j <= m; j++) buf[i][j] = buf[i][j] == '#';
	}
	for (int i = 1; i < n; i++)
		for (int j = 1; j < m; j++)	{
			a[i][j] = !(buf[i][j] ^ buf[i][j + 1] ^ buf[i + 1][j] ^ buf[i + 1][j + 1]);
			if (a[i][j]) pos[i][j] = pos[i - 1][j] + 1;
		}
	int ans = std::max(n, m);
	for (int i = 1; i < n; i++) {
		s.push(std::make_pair(pos[i][1], 1));
		for (int j = 2; j < m; j++) {
			int tmp = 1;
			while (s.size() && s.top().first >= pos[i][j]) {
				tmp += s.top().second;
				ans = std::max(ans, tmp * (s.top().first + 1));
				s.pop();
			}
			s.push(std::make_pair(pos[i][j], tmp));
		}
		int tmp = 1;
		while (s.size()) {
			tmp += s.top().second;
			ans = std::max(ans, tmp * (s.top().first + 1));
			s.pop();
		}
	}
	std::printf("%d\n", ans);
	return 0;
}