#include<stdio.h>
using namespace std;
int main()
{
FILE *q, *sf,*w;
q=fopen("zombie.in","r");
sf=fopen("zombie.in","r");
w=fopen("zombie.out","w");
int dt,poz,zsfarsit,zinceput,d,n,k,costS=0,luate=0,ps=0,pi=0,pozi=1;
bool pending=false;
fscanf(q,"%d%d%d",&d,&n,&k);
if(k==d)
{
fprintf(w,"%d",n);
return 0;
}
poz=1;
fscanf(sf,"%d%d%d%d",&d,&n,&k,&zsfarsit);
fscanf(q,"%d",&zinceput);
while(poz<=n)
{
dt=zsfarsit-zinceput+1;
if(dt<d)
{if(poz-pozi+1>k)
{
pending=true;
ps=poz;
pi=pozi;
}}
else{
if(pending)
{
luate=luate+ps-pi+1;
costS=costS+k;
pending=false;
while(pozi<poz-1){
fscanf(q,"%d",&zinceput);
pozi++;
}
}
fscanf(q,"%d",&zinceput);
pozi++;
}
poz++;
if(poz<=n){
fscanf(sf,"%d",&zsfarsit);
}
}
if(pending)
{
luate=luate+ps-pi+1;
costS=costS+k;
pending=false;
}
//w<< (costS+n-luate);
fprintf(w,"%d",(costS+n-luate));
return 0;
}