Given a matrix (H × W) which contains only 1 and 0, find the area of the largest rectangle which only contains 0s.

Constraints

* 1 ≤ H, W ≤ 1,400

Input


H W
c1,1 c1,2 ... c1,W
c2,1 c2,2 ... c2,W
:
cH,1 cH,2 ... cH,W


In the first line, two integers H and W separated by a space character are given. In the following H lines, ci,j, elements of the H × W matrix, are given.

Output

Print the area (the number of 0s) of the largest rectangle.

Example

Input

4 5
0 0 1 0 0
1 0 0 0 0
0 0 0 1 0
0 0 0 1 0


Output

6
#include <bits/stdc++.h>

using namespace std;

typedef pair<int,int> pii;

#define MAX_H 1510
#define MAX_W 1510

int H,W;
int mat[MAX_H][MAX_W];

int maximum_rectangle(){
  int res = 0,h[MAX_W] = {0};
  for(int i = 0 ; i < H ; i++){
    for(int j = 0 ; j < W ; j++){
      h[j] = (mat[i][j] == 0 ? h[j] + 1 : 0);
    }
    stack<pii> st;
    st.push(pii(0,W));
    for(int j = 0 ; j <= W ; j++){
      int k = j;
      while(h[j] < st.top().first){
        k = st.top().second;
        res = max(res,st.top().first*(j-k));
        st.pop();
      }
      if(st.top().first < h[j]){
        st.push(pii(h[j],k));
      }
    }
  }
  return res;
}

int main(){
  cin >> H >> W;
  for(int i = 0 ; i < H ; i++){
    for(int j = 0 ; j < W ; j++){
      cin >> mat[i][j];
    }
  }
  cout << maximum_rectangle() << endl;
  return 0;
}