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
h,w=map(int,input().split())
C=[list(map(int,input().split())) for i in range(h)]

def Largest_Rectangle(grid,h,w):
    re=0
    hist=[[0]*(w+1) for i in range(h)]
    for j in range(w):
        if C[0][j]==0:
            hist[0][j]=1
    for j in range(w):
        for i in range(1,h):
            if C[i][j]==1:continue
            hist[i][j]=hist[i-1][j]+1
    for i in range(h):
        re=max(re,stack_processing_of_rectangle(hist[i]))
    return re

def stack_processing_of_rectangle(hist):
    # スタック処理
    maxrect=0
    stack=[]
    for j in range(w+1):
        if not stack:
            stack.append((hist[j],j))
        elif stack[-1][0]<hist[j]:
            stack.append((hist[j],j))
        elif stack[-1][0]>hist[j]:
            while stack and stack[-1][0]>hist[j]:
                hi,wi=stack.pop()
                maxrect=max(maxrect,hi*(j-wi))
            stack.append((hist[j],wi))
    return maxrect

print(Largest_Rectangle(C,h,w))
# hist=[[0]*(w+1) for i in range(h)]
# for j in range(w):
#     if C[0][j]==0:
#         hist[0][j]=1
# for j in range(w):
#     for i in range(1,h):
#         if C[i][j]==1:continue
#         hist[i][j]=hist[i-1][j]+1

# # スタック処理
# maxrect=0
# stack=[]
# for i in range(h):
#     for j in range(w+1):
#         if not stack:
#             stack.append((hist[i][j],j))
#         elif stack[-1][0]<hist[i][j]:
#             stack.append((hist[i][j],j))
#         elif  stack[-1][0]==hist[i][j]:
#             pass
#         elif stack[-1][0]>hist[i][j]:
#             while stack and stack[-1][0]>hist[i][j]:
#                 hi,wi=stack.pop()
#                 maxrect=max(maxrect,hi*(j-wi))
#             stack.append((hist[i][j],wi))
# print(maxrect)
            

        
        

