#include using namespace std; int n,k; long long dp[10005]; long long dpr[10005]; long long arr[10005]; long long solver(int pos) { if(pos<=0) { return 0; } if(dpr[pos]!=-1) { return dpr[pos]; } long long ans=(long long)1e15; for(int i=pos;i>=max(1,pos-k);i--) { ans=min(solver(i-k-1)+arr[i],ans); } dpr[pos]=ans; return dpr[pos]; } long long solve(int pos) { if(pos>n) { return 0; } if(dp[pos]!=-1) { return dpr[pos]; } long long ans=(long long)1e15; for(int i=pos;i<=min(n,pos+k);i++) { ans=min(solve(i+k+1)+arr[i],ans); } dp[pos]=ans; return dp[pos]; } int main() { scanf("%d %d",&n,&k); for(int i=1;i<=n;i++) { scanf("%lld",&arr[i]); dp[i]=dpr[i]=-1; } long long ans=(long long)1e15; for(int i=1;i<=n;i++) { ans=min(solve(i+k+1)+solver(i-k-1)+arr[i],ans); } printf("%lld ",ans); }