元素使者的试炼
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

在元素位面的远古遗迹中,悬浮着一座由 n 行 m 列水晶构成的魔法方阵,其中第 i 行第 j 列的水晶蕴含的元素能量为 c_{i,j}

年轻的元素使者必须选择激活其中某些水晶,使得每一行与每一列都至少有一个被激活的水晶节点。

只有满足这个条件的方阵,才能唤醒沉睡的古代守护者,而最终目标是使整个方阵被激活的水晶能量总和达到最大。

输入描述:

第一行包含两个整数 n,m \ (1 \leq n,m \leq 300),分别表示魔法方阵的行数和列数。

接下来 n 行,每行包含 m 个整数,其中第 i 行的第 j 个整数为 c_{i,j} \ (|c_{i,j}| \leq 300)表示第 i 行第 j 列水晶的能量值。

输出描述:

输出一个整数,表示能够获得的最大能量总和。
示例1

输入

复制
2 1
-3
-4

输出

复制
-7
示例2

输入

复制
3 2
3 1
3 3
4 -2

输出

复制
14