#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;
}