#include <bits/stdc++.h>
using namespace std;
const int maxN = 1e3 + 5;
int n, m;
int a[maxN][maxN];
int histogram[maxN][maxN];
int get_left(int col, int row){
int height = histogram[row][col], left = col;
while (left >= 1 && histogram[row][left] >= height)
left--;
return left + 1;
}
int get_right(int col, int row){
int right = col, height = histogram[row][col];
while (right <= m && histogram[row][right] >= height)
right++;
return right - 1;
}
int get_max_row(int row){
int ans = 0;
for (int i = 1; i <= m; i++){
ans = max(ans, histogram[row][i] * (get_right(i, row) - get_left(i, row) + 1));
}
return ans;
}
int main(){
cin >> n >> m;
for (int i = 1; i <= n; i++)
for (int j = 1; j <= m; j++) {
cin >> a[i][j];
if (a[i][j] == 0)
histogram[i][j] = 0;
else
histogram[i][j] = histogram[i-1][j] + 1;
}
int ans = 0;
for (int row = 1; row <= n; row++)
ans = max(ans, get_max_row(row));
cout << ans << '\n';
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpjb25zdCBpbnQgbWF4TiA9IDFlMyArIDU7CmludCBuLCBtOwppbnQgYVttYXhOXVttYXhOXTsKaW50IGhpc3RvZ3JhbVttYXhOXVttYXhOXTsKCmludCBnZXRfbGVmdChpbnQgY29sLCBpbnQgcm93KXsKICAgIGludCBoZWlnaHQgPSBoaXN0b2dyYW1bcm93XVtjb2xdLCBsZWZ0ID0gY29sOwogICAgd2hpbGUgKGxlZnQgPj0gMSAmJiBoaXN0b2dyYW1bcm93XVtsZWZ0XSA+PSBoZWlnaHQpCiAgICAgICAgbGVmdC0tOwogICAgcmV0dXJuIGxlZnQgKyAxOwp9CgppbnQgZ2V0X3JpZ2h0KGludCBjb2wsIGludCByb3cpewogICAgaW50IHJpZ2h0ID0gY29sLCBoZWlnaHQgPSBoaXN0b2dyYW1bcm93XVtjb2xdOwogICAgd2hpbGUgKHJpZ2h0IDw9IG0gJiYgaGlzdG9ncmFtW3Jvd11bcmlnaHRdID49IGhlaWdodCkKICAgICAgICByaWdodCsrOwogICAgcmV0dXJuIHJpZ2h0IC0gMTsKfQoKaW50IGdldF9tYXhfcm93KGludCByb3cpewogICAgaW50IGFucyA9IDA7CiAgICBmb3IgKGludCBpID0gMTsgaSA8PSBtOyBpKyspewogICAgICAgIGFucyA9IG1heChhbnMsIGhpc3RvZ3JhbVtyb3ddW2ldICogKGdldF9yaWdodChpLCByb3cpIC0gZ2V0X2xlZnQoaSwgcm93KSArIDEpKTsKICAgIH0KICAgIHJldHVybiBhbnM7Cn0KCmludCBtYWluKCl7CiAgICBjaW4gPj4gbiA+PiBtOwogICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKQogICAgICAgIGZvciAoaW50IGogPSAxOyBqIDw9IG07IGorKykgewogICAgICAgICAgICBjaW4gPj4gYVtpXVtqXTsKICAgICAgICAgICAgaWYgKGFbaV1bal0gPT0gMCkKICAgICAgICAgICAgICAgIGhpc3RvZ3JhbVtpXVtqXSA9IDA7CiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgIGhpc3RvZ3JhbVtpXVtqXSA9IGhpc3RvZ3JhbVtpLTFdW2pdICsgMTsKICAgICAgICB9CgogICAgaW50IGFucyA9IDA7CiAgICBmb3IgKGludCByb3cgPSAxOyByb3cgPD0gbjsgcm93KyspCiAgICAgICAgYW5zID0gbWF4KGFucywgZ2V0X21heF9yb3cocm93KSk7CiAgICBjb3V0IDw8IGFucyA8PCAnXG4nOwogICAgcmV0dXJuIDA7Cn0KCg==