#include<stdio.h>
#include<stdlib.h>
int cmp(const void* a, const void* b);
int a[200000], b[200000], flag[200000];
int main()
{
int n, c, m;
int i, j;
long long count = 0;
scanf("%d %d", &n, &c);
for (i = 0; i < n; i++)
scanf("%d", &a[i]);
qsort(a, n, sizeof(a[0]), cmp);
for (i = m = 0; i < n; i++)
if (i == 0 || (i > 0 && a[i] != a[i - 1]))
{
flag[m]++;
b[m++] = a[i];
}
else flag[m - 1]++;
for (i = j = m - 1; i > 0;)
{
if (j < 0)
break;
if (b[i] - b[j] > c)
i--;
else if (b[i] - b[j] < c)
j--;
else if (b[i] - b[j] == c)
{
count += flag[i] * flag[j];
i--;
j--;
}
}
printf("%lld\n", count);
return 0;
}
int cmp(const void* a, const void* b)
{
return *(int*)a - *(int*)b;
}