Anaconda Inc. 在其仓库所在的多个城市遇到了一个问题。通用问题如下:每个城市有 $n$ 个仓库,存储着 $m$ 种不同的产品(其中 $m \leq n \leq 100$),这些产品随机分布在各个仓库中(尽管 Anaconda 的 CEO 声称存储并非随机,而是更大总体规划的一部分,但谁信呢)。他们想要通过选择 $m$ 个仓库,并让每个仓库专门存储 $m$ 种产品中的一种来整合仓库。他们本可以随机选择这 $m$ 个仓库,但即使是 CEO 也知道这可能不是解决该问题的最明智方法,因为将产品转移到指定的新仓库会产生成本。他们想要做的是选择 $m$ 个仓库,并为每个仓库分配一种产品,以使产品必须移动的总距离最小。
例如,考虑图 1 所示的情况(对应样例 1)。图中显示了三个仓库 W1、W2 和 W3,两种产品 A 和 B,每种产品在每个仓库中的数量,以及仓库之间的距离。如果我们分配 A 到 W1 仓库,B 到 W2 仓库,则将所有 A 移动到 W1 的总距离为 $0(3) + 7(5) = 35$,将所有 B 移动到 W2 的总距离为 $10(3) + 3(3 + 5) = 54$,总成本为 89(注意,将所有 B 从 W3 移动到 W2 的最短路径经过 W1)。然而,最佳方案是将 A 分配给 W3,将 B 分配给 W1,这导致总成本仅为 58。
图 1:仓库和产品布局示例
输入格式
输入以两个正整数 $n$ 和 $m$ 开始($m \leq n \leq 100$),分别表示仓库和产品的数量。接下来是 $n$ 行,每行包含 $m$ 个非负整数。第 $j$ 行的第 $i$ 个值表示存储在仓库 $j$ 中的产品 $i$ 的数量。最后是 $n$ 行,每行包含 $n$ 个整数。第 $j$ 行的第 $i$ 个值要么是一个非负值,指定了从仓库 $j$ 到仓库 $i$ 的道路长度,要么是 $-1$,表示从仓库 $j$ 到仓库 $i$ 没有直接道路。从一个仓库 $r$ 到另一个仓库 $s$ 的行驶距离可能与从 $s$ 到 $r$ 的行驶距离不同。任何仓库到自身的距离始终为 0,且任意两个仓库之间至少存在一条路径。
输出格式
输出使用最优产品分配方案将所有产品移动到仓库所需的最小总距离。
样例
输入格式 1
3 2 5 10 0 6 7 3 0 3 5 3 0 9 5 9 0
输出格式 1
58
输入格式 2
3 2 5 10 0 6 7 3 0 -1 5 -1 0 9 5 9 0
输出格式 2
124