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: h, w = map(int, input().split())
  
  mp = []
  for _ in range(h):
    lst = list(map(int, input().split()))
    cum = []
    acc = 0
    for i in lst:
      if not i:
        acc += 1
      else:
        acc = 0
      cum.append(acc)
    mp.append(cum)
  mp.append([-1] * w)
  ans = 0
  
  for i in range(w - 1, -1, -1):
    stack = []
  #  print(ans)
    for j in range(h + 1):
  #    print(stack)
      score = mp[j][i]
      if not stack:
        stack.append((score, j))
      else:
        last_score, last_ind = stack[-1][0], stack[-1][1]
        if score > last_score:
          stack.append((score, j))
        elif score == last_score:
          continue
        else:
          while stack and last_score > score:
            last_score, last_ind = stack.pop()
            ans = max(ans, last_score * (j - last_ind))
          stack.append((score, last_ind))
  
  print(ans)
  
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"}]