#include<bits/stdc++.h>
using namespace std;
struct node
{
long long val;long long num;
}k[500000];
long long Hash(long long x){
if(x<0) return -x%218357 + 218357;
return x%218357;
}
long long find(long long x){
long long y = Hash(x);
while(k[y].val!=0&&k[y].num!=y)y++;
return y;
}
int main(){
long long n,c;
scanf("%lld%lld",&n,&c);
long long sum = 0;
for(long long i = 1;i<= n ;i++){
long long q;
scanf("%lld",&q);
long long x = find(q);
k[x].val++;
k[x].num = q;
sum += k[find(q + c)].val;
sum += k[find(q - c)].val;
}
printf("%lld",sum);
return 0;
}