program monuments;
Uses Math;
const
MAXN = 2000000;
type elenco = array[0..MAXN-1] of longint;
var
N, K, L, i : longint;
A : elenco;
function demolish(N, K, L: longint; var A: elenco): longint;
var right, left, h, sol: Longint;
M : array [0..2*MAXN-1] of longint;
begin
if N=0 then demolish:=0
else
begin
for h := 0 to N -1 do
begin
M[h] := A[h];
M[h+N] := A[h] + K;
end;
sol := N;
right := 0;
for left:=0 to N-1 do
begin
while M[right]-M[left] <= L do right:=right+1;
sol := min(sol, right-left-1);
end;
demolish := sol;
end;
end;
Procedure scambia (var a,b: longint);
var x:longint;
begin
x:=a;
a:=b;
b:=x;
end;
Procedure ordinamento (estremoi,estremos: dword; var v : elenco; ordinato:boolean);
var inf, sup, medio:dword;
pivot :longint;
begin
inf:=estremoi;
sup:=estremos;
medio:= (estremoi+estremos) div 2;
pivot:=v[medio];
repeat
if (ordinato) then
begin
while (v[inf]<pivot) do inf:=inf+1;
while (v[sup]>pivot) do sup:=sup-1;
end;
if inf<=sup then
begin
scambia(v[inf],v[sup]);
inf:=inf+1;
sup:=sup-1;
end;
until inf>sup;
if (estremoi<sup) then ordinamento(estremoi,sup,v,ordinato);
if (inf<estremos) then ordinamento(inf,estremos,v,ordinato);
end;
begin
{
uncomment the following lines if you want to read/write from files
assign(input, 'input.txt'); reset(input);
assign(output, 'output.txt'); rewrite(output);
}
readln( N, K, L);
for i:=0 to N-1 do
read(A[i]);
readln;
for i := 0 to N-1 do
if (A[i] >= K) then A[i] := A[i]-K;
ordinamento (0,N-1,A, true);
writeln(demolish(N, K, L, A));
end.
cHJvZ3JhbSBtb251bWVudHM7ClVzZXMgTWF0aDsKY29uc3QKICAgIE1BWE4gPSAyMDAwMDAwOwp0eXBlIGVsZW5jbyA9ICBhcnJheVswLi5NQVhOLTFdIG9mIGxvbmdpbnQ7ICAgCnZhcgogICAgTiwgSywgTCwgaSAgOiBsb25naW50OwogICAgQSAgICAgICAgICAgOiBlbGVuY287CiAgICAKZnVuY3Rpb24gZGVtb2xpc2goTiwgSywgTDogbG9uZ2ludDsgdmFyIEE6IGVsZW5jbyk6IGxvbmdpbnQ7CnZhciByaWdodCwgbGVmdCwgaCwgc29sOiBMb25naW50OwogICAgTSA6IGFycmF5IFswLi4yKk1BWE4tMV0gb2YgbG9uZ2ludDsKYmVnaW4KICAgIGlmIE49MCB0aGVuIGRlbW9saXNoOj0wCiAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgYmVnaW4gCiAgICAgICAgICAgICAgIGZvciBoIDo9IDAgdG8gTiAtMSBkbwogICAgICAgICAgICAgICAgICAgICAgICAgYmVnaW4KICAgICAgICAgICAgICAgICAgICAgICAgICBNW2hdIDo9IEFbaF07CiAgICAgICAgICAgICAgICAgICAgICAgICAgTVtoK05dIDo9IEFbaF0gKyBLOwogICAgICAgICAgICAgICAgICAgICAgICAgZW5kOwogICAgICAgICAgICAgICAgc29sIDo9IE47CiAgICAgICAgICAgICAgICByaWdodCA6PSAwOwogICAgICAgICAgICAgICAgZm9yIGxlZnQ6PTAgdG8gTi0xIGRvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmVnaW4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlIE1bcmlnaHRdLU1bbGVmdF0gPD0gTCBkbyByaWdodDo9cmlnaHQrMTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvbCA6PSBtaW4oc29sLCByaWdodC1sZWZ0LTEpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZDsKICAgICAgICAgICAgICAgIGRlbW9saXNoIDo9IHNvbDsKICAgICAgICAgICAgIGVuZDsgICAKZW5kOwoKUHJvY2VkdXJlIHNjYW1iaWEgKHZhciBhLGI6IGxvbmdpbnQpOwp2YXIgeDpsb25naW50OwpiZWdpbgogICB4Oj1hOwogICBhOj1iOwogICBiOj14OwplbmQ7ICAKUHJvY2VkdXJlIG9yZGluYW1lbnRvIChlc3RyZW1vaSxlc3RyZW1vczogZHdvcmQ7IHZhciB2IDogZWxlbmNvOyBvcmRpbmF0bzpib29sZWFuKTsKdmFyIGluZiwgc3VwLCBtZWRpbzpkd29yZDsKICAgIHBpdm90IDpsb25naW50OwpiZWdpbgogICAgaW5mOj1lc3RyZW1vaTsKICAgIHN1cDo9ZXN0cmVtb3M7CiAgICBtZWRpbzo9IChlc3RyZW1vaStlc3RyZW1vcykgZGl2IDI7CiAgICBwaXZvdDo9dlttZWRpb107CiAgICByZXBlYXQKICAgICAgaWYgKG9yZGluYXRvKSB0aGVuCiAgICAgICAgIGJlZ2luCiAgICAgICAgICAgIHdoaWxlICh2W2luZl08cGl2b3QpIGRvICBpbmY6PWluZisxOwogICAgICAgICAgICB3aGlsZSAodltzdXBdPnBpdm90KSBkbyAgc3VwOj1zdXAtMTsKICAgICAgICAgZW5kOwogICAgICBpZiBpbmY8PXN1cCB0aGVuCiAgICAgICBiZWdpbgogICAgICAgICBzY2FtYmlhKHZbaW5mXSx2W3N1cF0pOwogICAgICAgICBpbmY6PWluZisxOwogICAgICAgICBzdXA6PXN1cC0xOwogICAgICAgZW5kOwogICAgdW50aWwgaW5mPnN1cDsKICAgIGlmIChlc3RyZW1vaTxzdXApIHRoZW4gb3JkaW5hbWVudG8oZXN0cmVtb2ksc3VwLHYsb3JkaW5hdG8pOwogICAgaWYgKGluZjxlc3RyZW1vcykgdGhlbiBvcmRpbmFtZW50byhpbmYsZXN0cmVtb3MsdixvcmRpbmF0byk7CmVuZDsKCmJlZ2luCiAgICB7CiAgICB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lcyBpZiB5b3Ugd2FudCB0byByZWFkL3dyaXRlIGZyb20gZmlsZXMKICAgIGFzc2lnbihpbnB1dCwgICdpbnB1dC50eHQnKTsgIHJlc2V0KGlucHV0KTsKICAgIGFzc2lnbihvdXRwdXQsICdvdXRwdXQudHh0Jyk7IHJld3JpdGUob3V0cHV0KTsKfQogICAgcmVhZGxuKCBOLCBLLCBMKTsKICAgIGZvciBpOj0wIHRvIE4tMSBkbwogICAgICAgIHJlYWQoQVtpXSk7CiAgICByZWFkbG47CiAgICBmb3IgaSA6PSAwIHRvIE4tMSBkbwogICAgICAgIGlmIChBW2ldID49IEspIHRoZW4gQVtpXSA6PSBBW2ldLUs7CiAgICBvcmRpbmFtZW50byAoMCxOLTEsQSwgdHJ1ZSk7CiAgICB3cml0ZWxuKGRlbW9saXNoKE4sIEssIEwsIEEpKTsKIAplbmQuCgo=