#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
int a[100005] ;
int com ( const void* a, const void* b ) {
int * pa = (int*) a ;
int * pb = (int*) b ;
return *pa - *pb ;
}
int main () {
int n, c, k, i, min, tem, result ;
scanf ( "%d %d %d", &n, &c, &k ) ;
for ( i = 0 ; i < n ; i++ ) {
scanf ( "%d", &a[i] ) ;
}
qsort ( a, n, sizeof (int), com ) ;
result = 0 ;
tem = 1 ;
for ( i = 1 ; i < n ; i++ ) {
if ( a[i] - a[i-1] <= c ) {
tem++ ;
}
else {
result++ ;
}
}
result += tem/c ;
if ( tem % c != 0 ) {
result++ ;
}
printf ( "%d\n", result ) ;
return 0 ;
}