object Main {
  def main(args: Array[String]): Unit = {
    import scala.io.StdIn.readLine
    val Array(datN, datC, datK) = readLine.split(" ").map(_.toInt)
    val datA_ = for(i <- 1 to datN) yield (readLine.split(" ").map(_.toInt).head)
    val datA = datA_.sorted.toArray

    def countBus(result: Int, timelimit: Int, people: Int, ary: Array[Int]): Int ={
      if(ary.isEmpty) result
      else {
        if((ary.head > timelimit) || (people > datC)) countBus(result + 1, ary.head + datK, 1, ary.tail)
        else countBus(result, timelimit, people + 1, ary.tail)
      }
    }
    val ans = countBus(1, datK, 0, datA)
    println(ans)
  }
}
