#include <cstdio>
#include <algorithm>
#include <cstring>
#include <cstdlib>
#include <iostream>
using namespace std;
#define int long long
inline int gi(){
char tmp=getchar();int ans=0;
while(!isdigit(tmp)) tmp=getchar();
while(isdigit(tmp)){
ans = ans * 10 + tmp - '0';
tmp = getchar();
}
return ans;
}
const int N = 1e7;
int F[N],Sum[N];
int Q[N];
signed main()
{
#ifdef TSUKIAKIOI
freopen("data.in","r",stdin);
#endif
int n,m;n=gi(),m=gi();
for(int i=1;i<=n;++i){
Sum[i] = gi();
Sum[i] += Sum[i-1];
}
int head=0,tail=-1;
Q[++tail] = 0;
for(int i=1;i<=n+1;++i){
while(head <= tail && i - m - 1 > Q[head]) head++;
F[i] = F[Q[head]] + Sum[i-1]-Sum[Q[head]];
while(head <= tail && F[Q[tail]]-Sum[Q[tail]] <= F[i] - Sum[i]) tail--;
Q[++tail]=i;
}
printf("%lld",F[n+1]);
return 0;
}