"use strict"

function Main(input) {
  input = input.trim().split('\n');
  const N = input[0].trim().split(' ').map(Number)[0];
  const C = input[0].trim().split(' ').map(Number)[1];
  const K = input[0].trim().split(' ').map(Number)[2];
  const T = input.slice(1, input.length).map(Number);
  T.sort((a, b) => a - b);

  let s = 0;
  let cnt = 0;
  let ret = 1;
  for(let i=1; i<N; i++){
    if(T[s] <= T[i] && T[i] <= T[s] + K){
      cnt += 1;
      if(cnt === C){
        ret +=1;
        s = i;
        cnt = 0;
      }
    } else {
      ret += 1;
      s = i;
      cnt = 0;
    }
  }

  console.log(ret);
}
Main(require("fs").readFileSync("/dev/stdin", "utf8"));