Python solution
\nclass Solution:\n    def maxArea(self, h: int, w: int, horizontalCuts: List[int], verticalCuts: List[int]) -> int:\n        # 1. sort the arrays\n        hori
```\nclass Solution:\n    def maxArea(self, h: int, w: int, horizontalCuts: List[int], verticalCuts: List[int]) -> int:\n        # 1. sort the arrays\n        horizontalCuts.sort()\n        verticalCuts.sort()\n        \n        # 2. set initial values for max_width, max_height. \n\t\t# They can only be the maximums between the lengths from reference (0) to \n\t\t# the 1st cut horizontalCuts[0]/ verticalCuts[0] and the difference between h or w \n\t\t# and last cut location from reference.\n        max_width, max_height = max(horizontalCuts[0], h - horizontalCuts[-1]), max(verticalCuts[0], w - verticalCuts[-1])\n        \n        #3. Only when multiple cuts are made in cake:\n\t\t\t# This part is only required when there are multiple cuts otherwise\n\t\t\t# the initialization value will be sufficient to calculate the result.\n        if len(horizontalCuts) > 1:\n            for index_1 in range(1, len(horizontalCuts)):\n                max_width = max(max_width, horizontalCuts[index_1] - horizontalCuts[index_1 - 1])\n        if len(verticalCuts) > 1:\n            for index_2 in range(1, len(verticalCuts)):\n                max_height = max(max_height, verticalCuts[index_2] - verticalCuts[index_2 - 1])\n                \n        return (max_height * max_width) % (10**9 + 7)\n```
['Python']