local n, c, k = io.read("*n", "*n", "*n")
local t = {}
for i = 1, n do
  t[i] = io.read("*n")
end
table.sort(t)
local pos = 1
local busnum = 0
while(pos <= n) do
  busnum = busnum + 1
  local klim = t[pos] + k
  local clim = pos + c - 1
  local i = pos + 1
  while(i <= n) do
    if(clim < i) then break end
    if(klim < t[i]) then break end
    i = i + 1
  end
  pos = i
end
print(busnum)
