#include <bits/stdc++.h>
using namespace std;
#define MAXN 3831
int n, b, ans;
int a[MAXN];
int f[MAXN][MAXN][2];
int main(){
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
cin >> n >> b;
for (int i(1); i<=n; ++i) cin >> a[i];
memset(f, -0x3f, sizeof(f));
f[1][1][1] = f[0][0][0] = 0;
for (int i(2); i<=n; ++i){
f[i][0][0] = f[i-1][0][0];
for (int j(1); j<=b; ++j){
f[i][j][0] = max(f[i-1][j][0], f[i-1][j][1]);
f[i][j][1] = max(f[i-1][j-1][0], f[i-1][j-1][1]+a[i]);
}
}
ans = max(f[n][b][0], f[n][b][1]);
memset(f, -0x3f, sizeof(f));
f[1][1][1] = a[1];
f[1][0][0] = 0;
for (int i(2); i<=n; ++i){
f[i][0][0] = f[i-1][0][0];
for (int j(1); j<=b; ++j){
f[i][j][0] = max(f[i-1][j][0], f[i-1][j][1]);
f[i][j][1] = max(f[i-1][j-1][0], f[i-1][j-1][1]+a[i]);
}
}
cout << max(ans, f[n][b][1]);
return 0;
}