#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;
}