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