#include<bits/stdc++.h>
#define ll long long int
using namespace std;
int main () {
ll n,k;
cin>>n>>k;
ll a[n+1];
for(ll i=0;i<n;i++){
cin>>a[i];
}
ll dp[n+1]={0};
priority_queue<pair<ll,ll>> pq;
for(ll i=0;i<k;i++){
dp[i] = a[i];
pq.push({a[i],i});
}
ll size = ceil(n/(k*1.0));
for(ll i=1;i<size;i++){
pair<ll,ll> p_max1 = pq.top();
pq.pop();
pair<ll,ll> p_max2 = pq.top();
pq.pop();
pq = priority_queue<pair<ll,ll>>();
for(ll j=k*i;j<n && j<k*i+k;j++){
if(j-p_max1.second != k){
// use max_1
dp[j] = a[j] + p_max1.first;
}else{
// use max_2
dp[j] = a[j] + p_max2.first;
}
pq.push({dp[j],j});
}
}
ll max_sum = INT_MIN;
for(ll i=0;i<n;i++){
max_sum = max(max_sum,dp[i]);
}
cout<<max(max_sum,0ll)<<"\n";
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KI2RlZmluZSBsbCBsb25nIGxvbmcgaW50CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbiAoKSB7CgkKCWxsIG4sazsKCWNpbj4+bj4+azsKCglsbCBhW24rMV07Cglmb3IobGwgaT0wO2k8bjtpKyspewoJCWNpbj4+YVtpXTsKCX0KCglsbCBkcFtuKzFdPXswfTsKCXByaW9yaXR5X3F1ZXVlPHBhaXI8bGwsbGw+PiBwcTsKCWZvcihsbCBpPTA7aTxrO2krKyl7CgkJZHBbaV0gPSBhW2ldOwoJCXBxLnB1c2goe2FbaV0saX0pOwoJfQoKCWxsIHNpemUgPSBjZWlsKG4vKGsqMS4wKSk7Cglmb3IobGwgaT0xO2k8c2l6ZTtpKyspewoJCXBhaXI8bGwsbGw+IHBfbWF4MSA9IHBxLnRvcCgpOwoJCXBxLnBvcCgpOwoJCXBhaXI8bGwsbGw+IHBfbWF4MiA9IHBxLnRvcCgpOwoJCXBxLnBvcCgpOwoKCQlwcSA9IHByaW9yaXR5X3F1ZXVlPHBhaXI8bGwsbGw+PigpOwoKCQlmb3IobGwgaj1rKmk7ajxuICYmIGo8ayppK2s7aisrKXsKCgkJCWlmKGotcF9tYXgxLnNlY29uZCAhPSBrKXsKCQkJCS8vIHVzZSBtYXhfMQoJCQkJZHBbal0gPSBhW2pdICsgcF9tYXgxLmZpcnN0OwoJCQl9ZWxzZXsKCQkJCS8vIHVzZSBtYXhfMgoJCQkJZHBbal0gID0gYVtqXSArIHBfbWF4Mi5maXJzdDsKCQkJfQkKCgkJCXBxLnB1c2goe2RwW2pdLGp9KTsKCQl9Cgl9CgoJbGwgbWF4X3N1bSA9IElOVF9NSU47Cglmb3IobGwgaT0wO2k8bjtpKyspewoJCW1heF9zdW0gPSBtYXgobWF4X3N1bSxkcFtpXSk7Cgl9CgoJY291dDw8bWF4KG1heF9zdW0sMGxsKTw8IlxuIjsKCQoJcmV0dXJuIDA7Cn0=