#include<bits/stdc++.h>
using namespace std;
long long int n,c,a[200005],ans=0;
int f(int target)
{
int left=0;
int right=n-1;
while(left<right)
{
int mid=left+(right-left)/2;
if(a[mid]>=target)
{
right=mid;
}
else
{
left=mid+1;
}
}
if(a[left]==target)return left;
else return -1;
}
int main()
{
cin>>n>>c;
for(int i=0;i<n;i++)cin>>a[i];
sort(a,a+n);
for(int i=0;i<n;i++)
{
int target=a[i]+c;
int j=f(target);
if(j!=-1||j!=n-1)
{
while(j<n&&a[j]==target)
{
ans++;
j++;
}
}
}
cout<<ans;
return 0;
}
#include<bits/stdc++.h>
using namespace std;
long long int n,c,a[200005],ans=0,flag[2000005],temp=0;
int f(int target)
{
int left=0;
int right=n-1;
while(left<right)
{
int mid=left+(right-left)/2;
if(a[mid]>=target)
{
right=mid;
}
else
{
left=mid+1;
}
}
if(a[left]==target)return left;
else return -1;
}
int main()
{
cin>>n>>c;
for(int i=0;i<n;i++)cin>>a[i];
sort(a,a+n);
for(int i=0;i<n;i++)
{
int target=a[i]+c;
if(flag[target]!=0)
{
ans+=flag[target];
continue;
}
int j=f(target);
if(j!=-1||j!=n-1)
{
while(j<n&&a[j]==target)
{
temp++;
j++;
}
ans+=temp;
flag[target]=temp;
temp=0;
}
}
cout<<ans;
return 0;
}