#include <stdio.h>
int cmp(const void *a, const void *b) {
return *(int*)a - *(int*)b;
}//qsort模版
int main() {
int n, k;
scanf("%d%d", &n, &k);
int a[100005];//n可以是10的五次
long long sum = 0;//是long类型
for (int i = 0; i < n; i++) {
scanf("%d", &a[i]);
}
qsort(a, n, sizeof(int), cmp);//比冒泡排要好很多,时间复杂度小
//这里不写判断条件,在下面判断
for (int i = n - 1; i >= 1;) {
//不用写i>2,因为不用担心越界
if ((a[i] - a[i - 1]) <= k) {
sum += (long long)a[i] * a[i - 1];//改为long,因为int是2e9,但是ai<1E5,乘积是1e10,大了
i = i - 2;
} else {
i = i - 1;
}
}
printf("%lld", sum);
return 0;
}