P0561

[cqoi2012]交换棋子

[cqoi2012]交换棋子

有一个 nn 行 mm 列的黑白棋盘,你每次可以交换两个相邻格子(相邻是指有公共边或公共顶点)中的棋子,最终达到目标状态。要求第 ii 行第 jj 列的格子只能参与 mi,jm_{i,j} 次交换。

输入格式

第一行包含两个整数 n,mn, m。

以下 nn 行为初始状态,每行为一个包含 mm 个字符的 0101 串,其中 0 表示黑色棋子,1 表示白色棋子。

以下 nn 行为目标状态,格式同初始状态。

以下 nn 行,每行为一个包含 mm 个 0~9 数字的字符串,表示每个格子参与交换的次数上限。

输出格式

输出仅一行,为最小交换总次数。如果无解,输出 −1-1。

样例输入

3 3
110
000
001
000
110
100
222
222
222

样例输出

4

数据范围

  • 1≤n,m≤201\le n, m\le 20。

来源与许可

本题为 CQOI 2012 试题「交换棋子」,题面与测试数据整理自 BZOJ 2668。

样例 1

输入

3 3
110
000
001
000
110
100
222
222
222

输出

4