#include<stdio.h>
#include<queue>
using namespace std;
int B[100100], A[100100];
int main(){
	int n, d, i;
	scanf("%d %d", &n, &d);
	for(i=1;i<=n;i++) scanf("%d", A+i);
	priority_queue <pair<int, int> > pq;
	pq.push({-1,1});
	A[1] = 1;
	for(i=2;i<=n;i++){
		while(!pq.empty() and i - pq.top().second-1 > d){
			pq.pop();
		}
		auto kk = pq.top();
		pq.push({kk.first-A[i]-1,i});
		B[i] = -(kk.first-A[i]-1);
	}
	printf("%d", B[n]);
}
