<Problem>
http://ntucoder.net/Problem/Details/5571
USES CRT;
type Arr=array[-100..trunc(1e6)] of longint;
var a:Arr;
n,k,i,dem:longint;
PROCEDURE SORT (var a:Arr; l,r:longint);
var i,j,x,tg:longint;
begin
i:=l;
j:=r;
x:=a[(l+r) div 2];
repeat
while a[i]<x do inc(i);
while a[j]>x do dec(j);
if not (i>j) then begin
tg:=a[i];
a[i]:=a[j];
a[j]:=tg;
inc(i);
dec(j);
end;
until (i>j);
if l<j then SORT(a,l,j);
if i<r then SORT(a,i,r);
end;
FUNCTION FIND (x:longint):boolean;
var l,r,mid:longint;
begin
l:=1; r:=n;
while (l<=r) do begin
mid:=(l+r) div 2;
if a[mid]=x then exit(true) else
if a[mid]>x then r:=mid-1 else l:=mid+1;
end;
exit(false);
end;
begin
readln(n,k);
for i:=1 to n do read(a[i]);
SORT(a,1,n);
dem:=0;
for i:=1 to n do
if (FIND(a[i]-k)) then inc(dem);
writeln(dem);
end.