import std.stdio;
import std.conv, std.array, std.algorithm, std.string;
import std.math, std.random, std.range, std.datetime;
import std.bigint;

void main(){
	long n, c, k;
	{
		long[] tmp = readln.chomp.split.map!(to!long).array;
		n = tmp[0], c = tmp[1], k = tmp[2];
		}
	
	long[] ts;
	foreach(i; 0 .. n){
		ts ~= readln.chomp.to!long;
		}
	
	ts.sort!("a < b")();
	
	long u = -1;
	long buscount = 0;
	long mancount = 0;
	foreach(t; ts){
		if(u < t || mancount >= c){
			buscount += 1;
			mancount = 0;
			u = t + k;
			}
		mancount += 1;
		debug writeln([t, u, buscount, mancount]);
		}
	
	buscount.writeln;
	
	}