这不是RMQ问题捏 : )
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

给定 $n$ 个长度为 $m$ 的数组。选取一个区间 $[L,R]$,对于每个数组都将其在这个区间上的一个最小值取出,然后将这些最小值求和记为 $S$,找到一个选取方法使得 $S$ 取得最大值,并输出这个最大值。

输入描述:

输入的第一行包含两个正整数 n, m (1 \le n \le 10 ^ 2,1 \le m \le 2 \times 10 ^ 4)
接下来的 n 行中,每行输入 m 个数,其中第 i 个整数 a_i (1 \le a_i \le 10^{6})

输出描述:

输出 S 的最大值。
示例1

输入

复制
2 5
1 2 3 4 5
5 4 3 2 1

输出

复制
6