object Main extends App {
  val Array(n,c,k) = readLine.split(" ").map{_.toInt}
  val t = (1 to n).map{_ => readInt}.toArray.sorted
  val t_list = t.toList
  
  var ans = 0
  var i = 0
  
  while (i < n) {
    ans += 1
    val c_th_id = t(Array(n-1,i+c-1).min)
    val num_within_k = t_list.drop(i).takeWhile{_ <= t(i)+k}.length
    
    if(c <= num_within_k) i += c else i += num_within_k
  }
  
  println(ans)
}