阿尔伯塔省的城市通常被规划为矩形的街区网格。街区坐标从北到南为 $0$ 到 $R-1$,从西到东为 $0$ 到 $C-1$。
每个街区的生活质量都被赋予了一个唯一的数字,称为质量等级(quality rank),范围在 $1$ 到 $R \times C$ 之间,其中 $1$ 代表最好,$R \times C$ 代表最差。
城市规划部门希望确定一个维度为 $H$(北到南)乘 $W$(西到东)的矩形街区集合,使得该矩形内所有街区的质量等级的中位数最好(即数值最小)。$H$ 和 $W$ 是不超过 $R$ 和 $C$ 的奇数。奇数个质量等级的中位数定义为集合中满足以下条件的质量等级 $m$:比 $m$ 好的质量等级数量等于比 $m$ 差的质量等级数量。
你需要实现一个过程 rectangle(R, C, H, W, Q),其中 $R$ 和 $C$ 代表城市的总大小,$H$ 和 $W$ 代表街区集合的维度,$Q$ 是一个数组,使得 Q[a][b] 表示从北到南第 $a$ 行、从西到东第 $b$ 列的街区的质量等级。
你的 rectangle 实现必须返回一个数字:$H \times W$ 矩形街区中可能的最优(数值最小)中位数质量等级。
每个测试运行只会调用一次 rectangle。
样例
输入格式 1
5 5 3 3 5 11 12 16 25 17 18 2 7 10 4 23 20 3 1 24 21 19 14 9 6 22 8 13 15
输出格式 1
9
说明
对于此样例,最优(数值最小)的中位数质量等级为 $9$。
输入格式 2
2 6 1 5 6 1 2 11 7 5 9 3 4 10 12 8
输出格式 2
5
说明
对于此样例,正确答案为 $5$。