孙亦谐准备建西湖雅座来开饭馆。
他有 n 个零件,零件的大小均为 h \times w。零件从 1 \sim n 编号。
对于一个大小为 h \times w 的零件,其可视为一个 h 行 w 列的矩阵 a。若用
a_{i,j} 来表示这个矩阵中第 i 行第 j 列的元素。对于
\forall a_{i,j},都有
a_{i,j} \in {0, 1}。
则编号为 i 的零件的面积为:
S(i) = \sum_{i=1}^{h}
\sum_{j=1}^{w}
a_{i,j}
若编号为 l 和 r 的两个零件分别表示为矩阵 a 和 b,其在同一座楼的稳固程度可表示为:
f(l, r) = \sum_{i=1}^{h}
\sum_{j=1}^{w}
[ (a_{i,j} = 1)
\text{ and }(b_{i,j} = 1) ]
孙亦谐需要将这 n 个零件先选取若干个按照任意顺序排列搭成大楼,然后把剩余的零件搭成小楼。若没有剩余零件,则可以不搭小楼。
设 U 表示某座楼选取的零件编号的集合,则这座楼能成功搭建的条件是:
\forall i, j \in U, \quad f(i, j) \ge \left\lceil \frac{\min(S(i), S(j))}{2} \right\rceil
孙亦谐想知道在保证两座楼能成功搭建的条件下,让大楼使用的零件数尽量多。若无法成功搭建,则直接输出 -1。
第一行输入包含三个正整数 n, h, w,分别表示零件的个数、零件的行数、零件的列数。
接下来输入 n 个零件所表示的矩阵。
对于每个零件的矩阵 a,输入的格式如下:
共输入 h 行,每行 w 个元素。
第 i 行第 j 列的元素 a_{i,j},表示这个矩阵中第 i 行第 j 列的元素。
输出一个整数,表示在搭建成功的情况下,大楼最多能使用多少个零件。若无法成功搭建,则直接输出 -1。
3 2 2 0 1 1 1 1 0 0 0 0 1 0 1
2
3 2 2 0 1 1 0 0 0 0 1 1 0 0 0
-1
可以证明最优方案是用第一个零件和第三个零件搭大楼,用第二个零件搭小楼。
本题采用捆绑测试。
对于所有测试数据,1 \le n \le 1000,1 \le w, h \le 6。