output_description: Print the area (the number of 0s) of the largest rectangle.
input_description: 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.
attempt: from collections import deque
  
  
  def rectangle(n, hs):  # n:?¨????hs: ???????????°??????
      stack = deque()  # stack = (j, h) ????????¨?????????????´??????????
      ans = 0
      for i, h in enumerate(hs):
          j = -1
          while stack and stack[-1][1] > h:
              j, h2 = stack.pop()
              ans = max(ans, (i - j) * h2)
  
          if (
              not stack or stack[-1][1] < h
          ):  # stack?????????????????????stack?????????????????????"??????h"?????????????????°?????????????????????????°????????????°???????£???¨??????stack????????????
              stack.append((i if j == -1 else j, h))
  
      ans = max(ans, max((n - j) * h2 for j, h2 in stack))
  
      return ans
  
  
  H, W = map(int, input().split())
  hs = [0] * W
  result = 0
  
  for i in range(H):
      ht = list(map(int, input().split()))
      hs = list(
          map(lambda x, y: (x + 1) * abs(y - 1), hs, ht)
      )  # ???????????°???????????????
      result = max(result, rectangle(W, hs))
  
  print(result)
  
problem_description: Largest Rectangle
  
  Given a matrix (H × W) which contains only 1 and 0, find the area of the
  largest rectangle which only contains 0s.
samples: [{"input": "5\n    0 0 1 0 0\n    1 0 0 0 0\n    0 0 0 1 0\n    0 0 0 1 0", "output": "6"}]