import java.util.Scanner;
import java.util.TreeMap;
public class Main {
public static void main
(String[] args
) { Scanner sc
= new Scanner
(System.
in); int n = sc.nextInt();
int k = sc.nextInt();
int[] nums = new int[n];
for (int i = 0; i < n; i++) {
nums[i] = sc.nextInt();
}
int count = countSubarrayWithMaxMinUptoK(nums, n, k);
sc.close();
}
public static int countSubarrayWithMaxMinUptoK(int[] nums, int n, int limit) {
TreeMap
<Integer, Integer
> map
= new TreeMap
<>(); int count = 0;
for (int i = 0, j = 0; j < n; j++) {
map.put(nums[j], map.getOrDefault(nums[j], 0) + 1);
int max = map.lastKey();
int min = map.firstKey();
int absDiff
= Math.
abs(max
- min
); while (absDiff > limit) {
if (map.get(nums[i]) == 1) {
map.remove(nums[i]);
} else {
map.put(nums[i], map.get(nums[i]) - 1);
}
i++;
max = map.lastKey();
min = map.firstKey();
absDiff
= Math.
abs(max
- min
); }
count+=(j-i+1);
}
return count;
}
}
aW1wb3J0IGphdmEudXRpbC5TY2FubmVyOwppbXBvcnQgamF2YS51dGlsLlRyZWVNYXA7CgpwdWJsaWMgY2xhc3MgTWFpbiB7CiAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CiAgICAgICAgU2Nhbm5lciBzYyA9IG5ldyBTY2FubmVyKFN5c3RlbS5pbik7CiAgICAgICAgaW50IG4gPSBzYy5uZXh0SW50KCk7CiAgICAgICAgaW50IGsgPSBzYy5uZXh0SW50KCk7CiAgICAgICAgaW50W10gbnVtcyA9IG5ldyBpbnRbbl07CiAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspIHsKICAgICAgICAgICAgbnVtc1tpXSA9IHNjLm5leHRJbnQoKTsKICAgICAgICB9CiAgICAgICAgaW50IGNvdW50ID0gY291bnRTdWJhcnJheVdpdGhNYXhNaW5VcHRvSyhudW1zLCBuLCBrKTsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oY291bnQpOwogICAgICAgIHNjLmNsb3NlKCk7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBpbnQgY291bnRTdWJhcnJheVdpdGhNYXhNaW5VcHRvSyhpbnRbXSBudW1zLCBpbnQgbiwgaW50IGxpbWl0KSB7CiAgICAgICAgVHJlZU1hcDxJbnRlZ2VyLCBJbnRlZ2VyPiBtYXAgPSBuZXcgVHJlZU1hcDw+KCk7CiAgICAgICAgaW50IGNvdW50ID0gMDsKICAgICAgICBmb3IgKGludCBpID0gMCwgaiA9IDA7IGogPCBuOyBqKyspIHsKICAgICAgICAgICAgbWFwLnB1dChudW1zW2pdLCBtYXAuZ2V0T3JEZWZhdWx0KG51bXNbal0sIDApICsgMSk7CiAgICAgICAgICAgIGludCBtYXggPSBtYXAubGFzdEtleSgpOwogICAgICAgICAgICBpbnQgbWluID0gbWFwLmZpcnN0S2V5KCk7CiAgICAgICAgICAgIGludCBhYnNEaWZmID0gTWF0aC5hYnMobWF4IC0gbWluKTsKICAgICAgICAgICAgd2hpbGUgKGFic0RpZmYgPiBsaW1pdCkgewogICAgICAgICAgICAgICAgaWYgKG1hcC5nZXQobnVtc1tpXSkgPT0gMSkgewogICAgICAgICAgICAgICAgICAgIG1hcC5yZW1vdmUobnVtc1tpXSk7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIG1hcC5wdXQobnVtc1tpXSwgbWFwLmdldChudW1zW2ldKSAtIDEpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaSsrOwogICAgICAgICAgICAgICAgbWF4ID0gbWFwLmxhc3RLZXkoKTsKICAgICAgICAgICAgICAgIG1pbiA9IG1hcC5maXJzdEtleSgpOwogICAgICAgICAgICAgICAgYWJzRGlmZiA9IE1hdGguYWJzKG1heCAtIG1pbik7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY291bnQrPShqLWkrMSk7CiAgICAgICAgfQogICAgICAgIHJldHVybiBjb3VudDsKICAgIH0KfQ==