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;
const int inf = 1 << 30;
const long long int infll = 1LL << 58;
const double EPS = 1e-9;
const int dx[] = {1, 0, -1, 0}, dy[] = {0, 1, 0, -1};
template <typename T>
ostream &operator<<(ostream &os, const vector<T> &vec) {
  os << "[";
  for (const auto &v : vec) {
    os << v << ",";
  }
  os << "]";
  return os;
}
int get_largest_rectangle(int c[], int size) {
  stack<pair<int, int> > stk;
  int res = 0;
  for (int i = (0); i < (size); ++i) {
    pair<int, int> rect;
    rect.first = c[i];
    rect.second = i;
    if (stk.empty() or stk.top().first < rect.first)
      stk.push(rect);
    else if (stk.top().first > rect.first) {
      int target = i;
      while (!stk.empty() and stk.top().first >= rect.first) {
        pair<int, int> pre = stk.top();
        stk.pop();
        int area = pre.first * (i - pre.second);
        res = max(res, area);
        target = pre.second;
      }
      rect.second = target;
      stk.push(rect);
    }
  }
  return res;
}
void solve() {
  int h, w;
  cin >> h >> w;
  static int c[1400][1400];
  for (int i = (0); i < (h); ++i)
    for (int j = (0); j < (w); ++j) {
      cin >> c[i][j];
      c[i][j] = (c[i][j] + 1) % 2;
    }
  for (int i = (1); i < (h); ++i)
    for (int j = (0); j < (w); ++j)
      if (c[i - 1][j] and c[i][j]) c[i][j] = c[i - 1][j] + 1;
  int ans = 0;
  for (int i = (0); i < (h); ++i)
    ans = max(ans, get_largest_rectangle(c[i], w));
  cout << ans << endl;
}
int main() {
  std::ios::sync_with_stdio(false);
  std::cin.tie(0);
  solve();
  return 0;
}
