#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int N = 2e5 + 10;
int b_search1(int *nums, int target, int s, int e){
int min = s, max = e;
int mid;
while(min<max){
mid = (min + max) / 2;
if(nums[mid]>target)max = mid - 1;
else if(nums[mid]<target) min = mid + 1;
else{
while(min<max){
if(nums[mid]==target) max=mid;
else min = mid+1;
mid = (min + max) / 2;
}
return mid+1;
}
}
return 0;
}
int b_search2(int *nums, int target, int s, int e){
int min = s, max = e;
int mid;
while(min<max){
mid = (min + max ) / 2;
if(nums[mid]>target)max = mid - 1;
else if(nums[mid]<target) min = mid + 1;
else {
while(min<max){
if(nums[mid]==target) min=mid;
else max = mid-1;
mid = (min + max + 1) / 2;
}
return mid+1;
}
}
return 0;
}
int main(){
int n , c;
int m[N];
cin>>n>>c;
for(int i = 0; i < n; i++){
cin>>m[i];
}
sort(m,m+n);
ll count=0;
for(int i = 0; i < n - 1; i++){
int b = m[i];
int a = b + c;
int x = b_search1(m, a, 0, n);
int y = b_search2(m, a, 0, n);
if(x&&y)count = count+(x-y+1);
}
cout<<count;
return 0;
}