#include <iostream>
using namespace std;
#include<vector>
#include<queue>
#define ll long long
int main() {
   int n,k;
   cin>>n>>k;
   vector<int>v;
    ll sumtime=0;
   for(int i=0;i<n;i++){//从后往前开始遍历关卡的时间 当遇到k倍关卡时 说明获得了一个跳关机会
       int a;           //跳过遍历过的最大时间    
       cin>>a;
       v.push_back(a);
       sumtime+=a;
   }
   priority_queue<int>pq;
   for(int i=v.size()-1;i>=0;i--){
        if((i+1)%k==0&&!pq.empty()){
            sumtime-=pq.top();
            pq.pop();
        }
         pq.push(v[i]);
   }
   cout<<sumtime;

}
// 64 位输出请用 printf("%lld")