中央市以其著名的雕像公园而闻名。公园被规划为一个网格,每个网格方块中要么放置着一座雕像,要么是一个公园水景(见图 L.1a)。雕像的大小形状各异,问题也随之而来:有些雕像太大,以至于从公园周围的主要道路(北、东、南、西四条路)看过去,会遮挡住其他雕像。公园雕像管理员 Milo D. Venus 希望移动部分雕像,以便游客在其中两条道路上能够看到所有的雕像。
他意识到,实现这一目标的一种方法是选择公园的一个角落,然后按照网格对角线距离该角落的顺序,沿着对角线放置雕像,并跳过任何有水景的方块。最小的雕像将被放置在第一条对角线上(假设该处没有水景)。接下来的最小雕像将被放置在第二条对角线上(根据该对角线上水景方块的数量,这可能是 0、1 或 2 座雕像)。再接下来的最小雕像被放置在第三条对角线上,依此类推。然而,这种方案有许多选择。例如,如果你希望沿着北路(N)和西路(W)获得最佳观赏效果,你会使用图 L.1b 中的对角线,将最小的雕像放在对角线 $a$ 上,次小的放在对角线 $b$ 上,接下来的三座最小的放在对角线 $c$ 上,接下来的两座最小的放在对角线 $d$ 上,依此类推。如果你希望沿着西路(W)和南路(S)获得最佳观赏效果,你会使用图 L.1c 中的对角线,将最小的雕像放在对角线 $a$ 上,接下来的两座最小的放在对角线 $b$ 上,接下来的三座最小的放在对角线 $c$ 上,接下来的最小的放在对角线 $d$ 上,依此类推。在任何可以容纳超过两座雕像的对角线内,这些雕像的放置顺序可以是任意的,这导致了更多的选择。
图 L.1:雕像公园。图 (b) 和 (c) 展示了两种可能的对角线放置方式
考虑到这种灵活性,选择一种能使需要移动的雕像数量最少的方案似乎是很自然的,但哪种方案最好并不显而易见。Milo 是一位非常有能力的管理员,也非常迷人(他简直让人无法抗拒),但他并不擅长解决这类问题。你能抽出时间帮帮他吗?
输入格式
输入包含两个正整数 $n, m$ ($n, m \le 50$),指定了公园网格的行数和列数。随后是 $n$ 行,每行包含 $m$ 个整数。第 $i$ 行的第 $j$ 个值表示公园网格中第 $i$ 行第 $j$ 列的物体。如果该值为正数,则表示该高度的雕像;如果为 $-1$,则表示水景。没有两座雕像的高度相同。
输出格式
输出在上述方案的所有可能放置方式中,需要移动的雕像数量的最小值。
样例
样例输入 1
3 4 2 -1 9 6 10 8 -1 4 1 3 5 7
样例输出 1
5
样例输入 2
3 4 30 -1 24 18 28 22 -1 16 26 20 14 12
样例输出 2
0