#include #include using namespace std; using ll = long long; using S = pair; constexpr S e(){return make_pair(1ll << 60, 0);} constexpr S op(S lhs, S rhs){return min(lhs, rhs);} int main() { ios::sync_with_stdio(false); cin.tie(0); int n, m, v2; cin >> n >> m; vector tmp(m); for(int i = 0; i < m; i++) tmp[i].second = i; atcoder::segtree seg(tmp); for(int i = 0; i < n; i++){ cin >> v2; auto [v, idx] = seg.all_prod(); seg.set(idx, make_pair(v + v2, idx)); } ll ans = 0; for(int i = 0; i < m; i++) ans = max(ans, seg.get(i).first); cout << ans << '\n'; }