图书管理员 Jurica 的图书馆里有 $N$ 个书架,每个书架可以容纳 $M$ 本书。Jurica 是一个优秀的图书管理员,所以他决定对图书馆进行盘点,并在必要时将不在原位的书放回正确的位置。他按以下方式移动书籍:
- 在书架上将书向左或向右移动一个位置(如果左边或右边的位置是空闲的)。
- 从书架上拿下一本书,并将其放入该书架或其他书架上的空闲位置。
细心的 Jurica 在手里拿着书时不能移动其他书。此外,他一次不能拿超过一本书。
自从 Jurica 必须把所有印刷版维基百科从一楼搬到二楼后,他就一直背痛,所以现在他想在尽可能少拿起书的情况下把所有的书都放回原位,因为他的背很疼。他最少需要拿起书多少次?
输入格式
第一行包含整数 $N$ 和 $M$($1 \le N \le 1000$,$1 \le M \le 1000$)。
接下来的 $N$ 行,每行包含 $M$ 个整数,第 $i$ 行描述第 $i$ 个书架的当前状态。
数字 $0$ 表示书架上的空位,非 $0$ 的数字表示该位置有一本书,并用该数字标记。所有的书都用 $1$ 到 $K$ 之间不同的数字标记,其中 $K$ 是书架上书的总数。
之后,紧接着另外 $N$ 行,每行包含 $M$ 个整数,第 $i$ 行描述第 $i$ 个书架的目标状态。
在书架的初始状态和最终状态中,会出现相同的书。
输出格式
输出的第一行也是唯一一行必须包含所需的最小拿起次数,如果无法按上述方式排列书籍,则输出 -1。
子任务
在占总分 50% 的测试用例中,每本书在初始状态和最终状态下都位于同一个书架上。
样例
输入样例 1
2 4 1 0 2 0 3 5 4 0 2 1 0 0 3 0 4 5
输出样例 1
2
输入样例 2
3 3 1 2 3 4 5 6 7 8 0 4 2 3 6 5 1 0 7 8
输出样例 2
4
输入样例 3
2 2 1 2 3 4 2 3 4 1
输出样例 3
-1
说明
第一个样例的解释:Jurica 将把书 1 向右移动一个位置,然后拿起书 2 并将其移动到第一个书架的第一个位置。他拿起书 5 并将其放在第二个书架的第四个位置。