#include <bits/stdc++.h>
using namespace std;
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
int n, k;
cin >> n >> k;
vector<int> comidas(n);
for(int i = 0; i < n; ++i) {
cin >> comidas[i];
}
int atual = 0, max_atual = 0;
int posicao_max;
vector<int> possibilidades;
for(int i = 0; i < n; ++i) {
atual += comidas[i];
if(atual < 0) {
possibilidades.push_back(max_atual);
atual = 0;
max_atual = 0;
i = posicao_max + 1;
}
if(atual > max_atual) {
max_atual = atual;
posicao_max = i;
}
}
possibilidades.push_back(max_atual);
sort(possibilidades.begin(), possibilidades.end(), greater<int>());
int max_total = 0;
int tamanho = possibilidades.size();
int menor = min(tamanho, k);
for(int i = 0; i < menor; ++i) {
max_total += possibilidades[i];
}
cout << max_total << "\n";
return 0;
}
//t