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 <iostream>
#include <algorithm>
#include <string>
#include <vector>
#include <functional>
#include <queue>
#include <stack>
#include <set>
#include <map>
#include <numeric>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <cctype>
#include <sstream>

#define rep(i, a) REP(i, 0, a)
#define REP(i, a, b) for(int i = a; i < b; ++i)
#define rrep(i, a) RREP(i, a, 0)
#define RREP(i, a, b) for(int i = a; i >= b; --i)
#define repll(i, a) REPLL(i, 0, a)
#define REPLL(i, a, b) for(ll i = a; i < b; ++i)
#define rrepll(i, a) RREPLL(i, a, 0)
#define RREPLL(i, a, b) for(ll i = a; i >= b; --i)

typedef long long ll;
typedef unsigned long long ull;
typedef std::pair<int, int> P;
typedef std::pair<int, P> PP;
const double PI = 3.14159265358979323846;
const double esp = 1e-9;
const int infi = (int)1e+9 + 10;
const ll infll = (ll)1e+18 + 10;

int h, w, ans = 0;
int map[1405][1405];

int main(){
	std::cin >> h >> w;
	rep(i, h){
		rep(j, w)std::cin >> map[i][j], map[i][j] = (1 - map[i][j]);
		map[i][w] = 0;
	}

	rep(i, w){
		REP(j, 1, h)map[j][i] = (map[j][i] == 0 ? 0 : map[j - 1][i] + 1);
	}

	rep(i, h){
		int max = 0;
		std::stack<P> s;
		rep(j, w + 1){
			if (s.empty() || s.top().first < map[i][j])s.push(P(map[i][j], j));
			else if (s.top().first > map[i][j]){
				int pos = j;
				while (s.size() && s.top().first >= map[i][j]){
					P p = s.top(); s.pop();
					max = std::max(max, p.first * (j - p.second));
					pos = p.second;
				}
				s.push(P(map[i][j], pos));
			}
		}
		ans = std::max(max, ans);
	}

	std::cout << ans << std::endl;

	return 0;
}