#include<bits/stdc++.h>
using namespace std ;
long long suml, sumr, n, res, k, fl, num, a[1000009], dp[1000009], f[2005][2005], g[2005][2005];
bool ngcheck;
void sub1()
{
suml=0;
sumr=0;
ngcheck=false;
for(int i=1; i<=n; i++)
{
if(a[i]<0) ngcheck=true, num=a[i];
else
{
if(ngcheck==false) suml+=a[i];
if(ngcheck==true) sumr+=a[i];
}
}
if(k==1) cout << max(suml+sumr+num,max(suml,sumr));
else cout << suml+sumr;
}
void sub2()
{
dp[0]=0;
res=-1e18;
for(int i=1; i<=n; i++)
{
dp[i]=max(dp[i-1]+a[i],a[i]);
res=max(res,dp[i]);
}
cout << res;
}
void sol()
{
for(int i = 0; i <= n; i++) {
for(int j = 0; j <= k; j++) {
f[i][j] = -1e18;
g[i][j] = -1e18;
}
}
for(int i = 0; i <= n; i++)
f[i][0] = 0;
for(int j = 1; j <= k; j++) {
for(int i = 1; i <= n; i++) {
g[i][j] = max(g[i-1][j], f[i-1][j-1]) + a[i];
f[i][j] = max(f[i-1][j], g[i][j]);
}
}
cout << f[n][k];
}
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
if(fopen("kd.inp","r"))
{
freopen("kd.inp","r",stdin);
freopen("kd.out","w",stdout);
}
cin >> n >> k;
fl=0;
for(int i=1; i<=n; i++)
{
cin >> a[i];
if(a[i]<0) fl++;
}
if(fl==1) sub1();
else if(k==1) sub2();
else sol();
return 0 ;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZCA7CmxvbmcgbG9uZyBzdW1sLCBzdW1yLCBuLCByZXMsIGssIGZsLCBudW0sIGFbMTAwMDAwOV0sIGRwWzEwMDAwMDldLCBmWzIwMDVdWzIwMDVdLCBnWzIwMDVdWzIwMDVdOwpib29sIG5nY2hlY2s7CnZvaWQgc3ViMSgpCnsKICAgIHN1bWw9MDsKICAgIHN1bXI9MDsKICAgIG5nY2hlY2s9ZmFsc2U7CiAgICBmb3IoaW50IGk9MTsgaTw9bjsgaSsrKQogICAgewogICAgICAgIGlmKGFbaV08MCkgbmdjaGVjaz10cnVlLCBudW09YVtpXTsKICAgICAgICBlbHNlCiAgICAgICAgewogICAgICAgICAgICBpZihuZ2NoZWNrPT1mYWxzZSkgc3VtbCs9YVtpXTsKICAgICAgICAgICAgaWYobmdjaGVjaz09dHJ1ZSkgc3Vtcis9YVtpXTsKICAgICAgICB9CiAgICB9CiAgICBpZihrPT0xKSBjb3V0IDw8IG1heChzdW1sK3N1bXIrbnVtLG1heChzdW1sLHN1bXIpKTsKICAgIGVsc2UgY291dCA8PCBzdW1sK3N1bXI7Cn0Kdm9pZCBzdWIyKCkKewogICAgZHBbMF09MDsKICAgIHJlcz0tMWUxODsKICAgIGZvcihpbnQgaT0xOyBpPD1uOyBpKyspCiAgICB7CiAgICAgICAgZHBbaV09bWF4KGRwW2ktMV0rYVtpXSxhW2ldKTsKICAgICAgICByZXM9bWF4KHJlcyxkcFtpXSk7CiAgICB9CiAgICBjb3V0IDw8IHJlczsKfQp2b2lkIHNvbCgpCnsKICAgIGZvcihpbnQgaSA9IDA7IGkgPD0gbjsgaSsrKSB7CiAgICAgICAgZm9yKGludCBqID0gMDsgaiA8PSBrOyBqKyspIHsKICAgICAgICAgICAgZltpXVtqXSA9IC0xZTE4OwogICAgICAgICAgICBnW2ldW2pdID0gLTFlMTg7CiAgICAgICAgfQogICAgfQogICAgZm9yKGludCBpID0gMDsgaSA8PSBuOyBpKyspCiAgICAgICAgZltpXVswXSA9IDA7CiAgICBmb3IoaW50IGogPSAxOyBqIDw9IGs7IGorKykgewogICAgICAgIGZvcihpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKSB7CiAgICAgICAgICAgIGdbaV1bal0gPSBtYXgoZ1tpLTFdW2pdLCBmW2ktMV1bai0xXSkgKyBhW2ldOwogICAgICAgICAgICBmW2ldW2pdID0gbWF4KGZbaS0xXVtqXSwgZ1tpXVtqXSk7CiAgICAgICAgfQogICAgfQoKICAgIGNvdXQgPDwgZltuXVtrXTsKfQppbnQgbWFpbigpCnsKICAgIGlvczo6c3luY193aXRoX3N0ZGlvKDApOwogICAgY2luLnRpZSgwKTsKICAgIGNvdXQudGllKDApOwogICAgaWYoZm9wZW4oImtkLmlucCIsInIiKSkKICAgIHsKICAgICAgICBmcmVvcGVuKCJrZC5pbnAiLCJyIixzdGRpbik7CiAgICAgICAgZnJlb3Blbigia2Qub3V0IiwidyIsc3Rkb3V0KTsKICAgIH0KICAgIGNpbiA+PiBuID4+IGs7CiAgICBmbD0wOwogICAgZm9yKGludCBpPTE7IGk8PW47IGkrKykKICAgIHsKICAgICAgICBjaW4gPj4gYVtpXTsKICAgICAgICBpZihhW2ldPDApIGZsKys7CiAgICB9CiAgICBpZihmbD09MSkgc3ViMSgpOwogICAgZWxzZSBpZihrPT0xKSBzdWIyKCk7CiAgICBlbHNlIHNvbCgpOwogICAgcmV0dXJuIDAgOwp9Cg==