object Main {
    def main(args: Array[String]): Unit = {
        val sc = new java.util.Scanner(System.in)
        
        val n, c, k = sc.nextInt
        val ts = List.fill(n)(sc.nextInt).sorted
        
        var joukyaku = 0
        var time_limit = ts(0) + k
        var bus_count = 1
        for ((t, i) <- ts.zipWithIndex) {
            if (t > time_limit) {
                bus_count += 1
                time_limit = t + k
                joukyaku = 1
            } else {
                joukyaku += 1
                if (joukyaku >= c) {
                    bus_count += 1
                    time_limit = ts(i+1) + k
                    joukyaku = 0
                }
            }
        }
        
        println(bus_count)
    }
}