#include<bits/stdc++.h>
using namespace std;
int forw[3005], backw[3005];
int gamecom(vector<int> a, int k){
int n = a.size(); // n stores the size of the vector
k--; // so that index is matched correctly(starting from zero)
if(k!=n-1){ // if k is the last element, forward[i] should be zero
if(a[k+1]>forw[k+1]){
forw[k+1] = a[k+1]; // assigning the first value in forward[i]
}
}
backw[0] = a[0]; // assigning the first value in backward[i]
for(int i=1; i<=k; i++){ // assigning values from 1 to k in backward[i]
if(backw[i]<backw[i-1]+a[i]){
backw[i] = backw[i-1]+a[i];
}
else{
backw[i] = backw[i-1];
}
}
for(int i=k+1; i<n; i++){ //assigning values from k+1 to n in forward[i]
if(forw[i-1]+a[i]>forw[i-1]){
forw[i] = a[i]+forw[i-1];
}
else{
forw[i] = forw[i-1];
}
if(i==n-1){ // last element should not be counted in backward[i]
backw[i] = backw[i-1];
}
else if(backw[i-1]+a[i]>backw[i-1]){ // assigning values in backward[i]
backw[i] = backw[i-1]+a[i];
}
else{
backw[i] = backw[i-1];
}
}
int ans =INT_MIN; // calculating the maximum of forward[i]+backward[i]
for(int i=0; i<n; i++){
ans = max(ans, forw[i]+backw[i]);
}
return ans;
}
int main(){
int n, k;
cin >> n >> k;
vector<int> a;
for(int i=0; i<n; i++){
int x;
cin >> x;
a.push_back(x);
}
cout << gamecom(a, k);
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBmb3J3WzMwMDVdLCBiYWNrd1szMDA1XTsKCmludCBnYW1lY29tKHZlY3RvcjxpbnQ+IGEsIGludCBrKXsKICAgIGludCBuID0gYS5zaXplKCk7IC8vIG4gc3RvcmVzIHRoZSBzaXplIG9mIHRoZSB2ZWN0b3IKICAgIGstLTsgLy8gc28gdGhhdCBpbmRleCBpcyBtYXRjaGVkIGNvcnJlY3RseShzdGFydGluZyBmcm9tIHplcm8pCgogICAgaWYoayE9bi0xKXsgLy8gaWYgayBpcyB0aGUgbGFzdCBlbGVtZW50LCBmb3J3YXJkW2ldIHNob3VsZCBiZSB6ZXJvCiAgICAgICAgaWYoYVtrKzFdPmZvcndbaysxXSl7CiAgICAgICAgICAgIGZvcndbaysxXSA9IGFbaysxXTsgLy8gYXNzaWduaW5nIHRoZSBmaXJzdCB2YWx1ZSBpbiBmb3J3YXJkW2ldCiAgICAgICAgfQogICAgfQogICAgYmFja3dbMF0gPSBhWzBdOyAvLyBhc3NpZ25pbmcgdGhlIGZpcnN0IHZhbHVlIGluIGJhY2t3YXJkW2ldCiAgICBmb3IoaW50IGk9MTsgaTw9azsgaSsrKXsgLy8gYXNzaWduaW5nIHZhbHVlcyBmcm9tIDEgdG8gayBpbiBiYWNrd2FyZFtpXQogICAgICAgIGlmKGJhY2t3W2ldPGJhY2t3W2ktMV0rYVtpXSl7CiAgICAgICAgICAgIGJhY2t3W2ldID0gYmFja3dbaS0xXSthW2ldOwogICAgICAgIH0KICAgICAgICBlbHNlewogICAgICAgICAgICBiYWNrd1tpXSA9IGJhY2t3W2ktMV07CiAgICAgICAgfQogICAgfQoKICAgIGZvcihpbnQgaT1rKzE7IGk8bjsgaSsrKXsgLy9hc3NpZ25pbmcgdmFsdWVzIGZyb20gaysxIHRvIG4gaW4gZm9yd2FyZFtpXQogICAgICAgIGlmKGZvcndbaS0xXSthW2ldPmZvcndbaS0xXSl7CiAgICAgICAgICAgIGZvcndbaV0gPSBhW2ldK2ZvcndbaS0xXTsKICAgICAgICB9CiAgICAgICAgZWxzZXsKICAgICAgICAgICAgZm9yd1tpXSA9IGZvcndbaS0xXTsKICAgICAgICB9CiAgICAgICAgaWYoaT09bi0xKXsgLy8gbGFzdCBlbGVtZW50IHNob3VsZCBub3QgYmUgY291bnRlZCBpbiBiYWNrd2FyZFtpXQogICAgICAgICAgICBiYWNrd1tpXSA9IGJhY2t3W2ktMV07CiAgICAgICAgfQogICAgICAgIGVsc2UgaWYoYmFja3dbaS0xXSthW2ldPmJhY2t3W2ktMV0peyAvLyBhc3NpZ25pbmcgdmFsdWVzIGluIGJhY2t3YXJkW2ldCiAgICAgICAgICAgIGJhY2t3W2ldID0gYmFja3dbaS0xXSthW2ldOwogICAgICAgIH0KICAgICAgICBlbHNlewogICAgICAgICAgICBiYWNrd1tpXSA9IGJhY2t3W2ktMV07CiAgICAgICAgfQoKICAgIH0KICAgIGludCBhbnMgID1JTlRfTUlOOyAvLyBjYWxjdWxhdGluZyB0aGUgbWF4aW11bSBvZiBmb3J3YXJkW2ldK2JhY2t3YXJkW2ldCgogICAgZm9yKGludCBpPTA7IGk8bjsgaSsrKXsKICAgICAgICBhbnMgPSBtYXgoYW5zLCBmb3J3W2ldK2JhY2t3W2ldKTsKICAgIH0KICAgIHJldHVybiBhbnM7Cn0KCmludCBtYWluKCl7CiAgICBpbnQgbiwgazsKICAgIGNpbiA+PiBuID4+IGs7CiAgICB2ZWN0b3I8aW50PiBhOwogICAgZm9yKGludCBpPTA7IGk8bjsgaSsrKXsKICAgICAgICBpbnQgeDsKICAgICAgICBjaW4gPj4geDsKICAgICAgICBhLnB1c2hfYmFjayh4KTsKICAgIH0KICAgIGNvdXQgPDwgZ2FtZWNvbShhLCBrKTsKfQo=