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 <stdio.h>
#define SIZ 1400
int m[SIZ+1][SIZ];
long long st[SIZ];
char z[9999999];
int get(){
	static int input_count=0;
	int r=0;
	for(;'0'<=z[input_count]&&z[input_count]<='9';)r=r*10+z[input_count++]-'0';
	input_count++;
	return r;
}
int main(){
	fread(z,1,sizeof(z),stdin);
	int i,j,k,y=get(),x=get(),r,ptr;
	for(j=0;j<y;j++)for(r=i=0;i<x;m[j][i]=r,i++){
		int t=get();
		r=t==0?r+1:0;
	}
	for(r=i=0;i<x;i++)for(ptr=j=0;j<=y;j++){
		int left=j;
		for(;ptr && st[ptr-1]>>32>m[j][i];){
			int l=st[ptr-1]&0xffffffff,h=st[ptr-1]>>32;
			ptr--;
			if(r<(j-l)*h)r=(j-l)*h;
			left=l;
		}
		st[ptr++]=((long long)m[j][i]<<32)|left;
	}

	printf("%d\n",r);
	return 0;
}