#include<bits/stdc++.h>
using namespace std;

int main(){
    int h,w;
    cin>>h>>w;
    vector<string> s(h);
    for(int i=0;i<h;i++) cin>>s[i];

    vector<vector<int>> token(h-1,vector<int>(w-1,0));
    for(int i=0;i<h-1;i++){
        for(int j=0;j<w-1;j++){
            token[i][j]=s[i][j]^s[i][j+1]^s[i+1][j]^s[i+1][j+1];
        }
    }
    vector<vector<int>> height(h,vector<int>(w,0));
    for(int i=0;i<w-1;i++) height[0][i]=1;
    for(int i=0;i<h-1;i++){
        for(int j=0;j<w-1;j++){
            if(token[i][j]) height[i+1][j]=1;
            else height[i+1][j]=height[i][j]+1;
        }
    }
    int res=h;
    for(int i=0;i<h;i++){
        stack<pair<int,int>> st;
        st.push({0,-1});
        for(int j=0;j<w;j++){
            pair<int,int> ret;
            while(ret=st.top(),height[i][j]<ret.first){
                st.pop();
                int lef=st.top().second;
                int size=(j-lef)*ret.first;
                res=max(res,size);
            }
            st.push({height[i][j],j});
        }
    }
    cout<<res<<endl;
    return 0;
}
