#include <cstdio>
#include <iostream>
#include <queue>
using namespace std;
long long n,k,ans;
long long e[100005];
long long f[100005],d[100002];
long long sum[100005];
deque<int> q;
int main()
{
freopen("mowlawn.in","r",stdin);
freopen("mowlawn.out","w",stdout);
cin >> n >> k;
for (long long i = 1; i <= n; ++i)
{
scanf("%lld",e+i);
sum[i] = sum[i-1]+e[i];
}
q.push_back(0);
for (long long i = 1; i <= n; ++i)
{
d[i] = f[i-1]-sum[i];
while(q.size()>1&&d[q.back()]<d[i])
q.pop_back();
q.push_back(i);
while(q.size()>1&&q.front() < i-k )
q.pop_front();
f[i] = d[q.front()]+sum[i];
}
cout << f[n];
return 0;
}