#include <bits/stdc++.h>
#define int long long
using namespace std;
int n, k;
vector<int> arr;
pair<int, int> cal(int k) {
vector<vector<pair<int, int>>> dp(n+2, vector<pair<int, int>>(2, {0, 0}));
dp[1][0] = {0, 0};
dp[1][1] = {arr[1]-k, 1};
for(int i=2; i<=n; i++) {
dp[i][0] = max(dp[i-1][0], dp[i-1][1]);
dp[i][1] = max(make_pair(dp[i-1][0].first+arr[i]-k, dp[i-1][0].second+1), make_pair(dp[i-1][1].first+arr[i], dp[i-1][1].second));
}
return max(dp[n][0], dp[n][1]);
}
signed main() {
cin.tie(0)->sync_with_stdio(0);
cin >> n >> k;
arr.assign(n+2, 0);
for(int i=1; i<=n; i++) {
cin >> arr[i];
}
int l=0, r=1e9;
while(l < r) {
int mid = (l+r)/2;
if(cal(mid).second <= k) r = mid;
else l = mid+1;
}
cout << cal(l).first + k*l;
}