“俄罗斯方块”游戏的作者决定制作一个全新的三维版本,让长方体落在一个矩形平台上。方块会按照一定的顺序依次落下,就像在二维游戏中一样。方块会一直下落,直到碰到障碍物(平台或其他已经停止运动的方块),然后它会停下并保持在该位置直到游戏结束。
然而,作者希望改变游戏的风格,将其从简单的街机游戏转变为更具挑战性的益智游戏。已知方块落下的顺序及其飞行路径,玩家的任务是计算出所有方块落下并停止后,整个堆叠结构最高点的高度。所有方块均垂直下落,且在下落过程中不会旋转。为了方便起见,我们在平台上建立一个笛卡尔坐标系,原点位于平台的一个角上,坐标轴与平台的边缘平行。
请编写一个程序来自动验证玩家的答案。
任务
编写一个程序:
- 从标准输入读取后续下落方块的描述,
- 确定所有方块落下并停止后,堆叠结构最高点的高度,
- 将结果写入标准输出。
输入格式
输入的第一行包含三个整数 $D$、$S$ 和 $N$($1 \le N \le 20\,000$,$1 \le D, S \le 1\,000$),分别用空格分隔,表示平台的长度、深度以及将要落下的方块数量。接下来的 $N$ 行每行描述一个方块。
每个方块的描述包含五个整数:$d$、$s$、$w$、$x$ 和 $y$($1 \le d$,$0 \le x$,$d + x \le D$,$1 \le s$,$0 \le y$,$s + y \le S$,$1 \le w \le 100\,000$),分别表示方块的长度、深度和高度。该方块将以其 $d \times s$ 的面作为底面落下,其中方块的长度和深度与平台的对应边平行。方块在平台上的投影顶点的坐标为:$(x, y)$、$(x+d, y)$、$(x, y+s)$ 和 $(x+d, y+s)$。
输出格式
标准输出的第一行且仅包含一个整数,即所有方块落下并停止后,堆叠结构最高点的高度。
样例
输入 1
7 5 4 4 3 2 0 0 3 3 1 3 0 7 1 2 0 3 2 3 3 2 2
输出 1
6