打砖块(brike)
题号:NC210249
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

在一个凹槽中放置了 层砖块,最上面的一层有 块砖,第二层有块,……最下面一层仅有一块砖。第 层的砖块从左至右编号为,第i层的第j块砖有一个价值。下面是一个有5层砖块的例子:

如果你要敲掉第 层的第 块砖的话,若 ,你可以直接敲掉它,若,则你必须先敲掉第 层的第j和第 块砖。
你的任务是从一个有层的砖块堆中,敲掉 块砖,使得被敲掉的这些砖块的价值总和最大。

输入描述:

数据的第一行为两个正整数,分别表示 ,接下来的第i每行有 个数据,分别表示

输出描述:

第1行:表示被敲掉砖块的最大值总和

示例1

输入

复制
4 5
2 2 3 4
8 2 7
2 3
49

输出

复制
19

备注:

对于20%的数据,满足;
对于100%的数据,满足;