fun main(args : Array<String>) {
    val (n, c, k) = readLine()!!.split(" ").map { it.toInt() }
    val tt = IntArray(n) { readLine()!!.toInt() }.sorted()

    var busSum = 1

    var busStart = tt.first()
    var pNum = 0

    tt.forEachIndexed { idx, t ->
        if (pNum < c && t-busStart <= k) {
            pNum++
        } else {
            busSum++
            busStart = t
            pNum = 1
        }
    }

    println(busSum)
}