#include<bits/stdc++.h>
using namespace std;
main(){
int n,k;
cin>>n>>k;
vector<int>v(n);
unordered_map<int,int>mp;
for(auto &it:v){
cin>>it;
mp[it]++;
}
int cnt=0;
for(auto &it:mp){
if(k==0) cnt+=(it.second*(it.second-1))/2;
else{
if(mp.find(it.first-k)!=mp.end()){
cnt+=mp[it.first-k]*it.second;
}
if(mp.find(it.first+k)!=mp.end()){
cnt+=mp[it.first+k]*it.second;
}
mp.erase(it.first);
}
}
cout<<cnt<<"\n";
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCm1haW4oKXsKICAgIGludCBuLGs7CiAgICBjaW4+Pm4+Pms7CiAgICB2ZWN0b3I8aW50PnYobik7CiAgICB1bm9yZGVyZWRfbWFwPGludCxpbnQ+bXA7CiAgICBmb3IoYXV0byAmaXQ6dil7CiAgICAgICAgY2luPj5pdDsKICAgICAgICBtcFtpdF0rKzsKICAgIH0KICAgIGludCBjbnQ9MDsKICAgIGZvcihhdXRvICZpdDptcCl7CiAgICAgICAgaWYoaz09MCkgY250Kz0oaXQuc2Vjb25kKihpdC5zZWNvbmQtMSkpLzI7CiAgICAgICAgZWxzZXsgICAgCiAgICAgICAgaWYobXAuZmluZChpdC5maXJzdC1rKSE9bXAuZW5kKCkpewogICAgICAgICAgICBjbnQrPW1wW2l0LmZpcnN0LWtdKml0LnNlY29uZDsKICAgICAgICB9CiAgICAgICAgaWYobXAuZmluZChpdC5maXJzdCtrKSE9bXAuZW5kKCkpewogICAgICAgICAgICBjbnQrPW1wW2l0LmZpcnN0K2tdKml0LnNlY29uZDsKICAgICAgICB9CiAgICAgICAgbXAuZXJhc2UoaXQuZmlyc3QpOwogICAgfQogICAgfQogICAgY291dDw8Y250PDwiXG4iOwp9