import java.util.Scanner; public class Main { private static final int MOD = 99997867; public static void main(String[] args){ Scanner in = new Scanner(System.in); while(in.hasNext()){ solution(in); } } /** * 双指针 * * 固1选2: * 依次固定最右边1个数(right),然后从该固定数前面剩余数中(left到right)选择2个 * * @param in */ private static void solution(Scanner in){ int n = in.nextInt(); int d = in.nextInt(); int[] locs = new int[n]; for(int i=0; i<n; i++){ locs[i] = in.nextInt(); } long result = 0; long gap; for(int left=0,right=0; right<n;){ if(locs[right]-locs[left] > d){ left++; }else{ gap = right-left; if(gap >= 2){ result += gap*(gap-1)/2; result %= MOD; } right++; } } System.out.println(result); } }