#include<bits/stdc++.h>
using namespace std;
int N,C,temp,jishuqi;multiset<int>M;bool zhongzhi{0};
int main(){
cin>>N>>C;
for(int i=0;i<N;++i){
cin>>temp;
M.insert(temp);
}
auto xiao=M.begin();
if (M.upper_bound((*xiao))!=M.end()) {
auto da=M.upper_bound((*xiao));
while (1) {
temp=(*da)-(*xiao);
auto datemp =da;
if (M.upper_bound((*da))==M.end()) {
zhongzhi=1;
}
if (temp<C) {
if (zhongzhi) {
xiao=M.upper_bound((*xiao));
}else {
da=M.upper_bound((*da));
}
}else if (temp==C) {
jishuqi+=(M.count((*da))*M.count((*xiao)));
xiao=M.upper_bound((*xiao));
}else {
xiao=M.upper_bound((*xiao));
}
if (zhongzhi&&(da==xiao)) {
break;
}
}
}
cout<<jishuqi;
return 0;
}