# import pypyjit # pypyjit.set_param('max_unroll_recursion=-1') from collections import defaultdict as dd S = input R = range P = print def I(): return int(S()) def M(): return map(int, S().split()) def L(): return list(M()) def O(): return list(map(int, open(0).read().split())) def yn(b): print("Yes" if b else "No") biga = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" smaa = "abcdefghijklmnopqrstuvwxyz" def acc(a): b = [0] for i in a: b.append(b[-1] + i) return b n, s = M() p = L() if n == 1: P(1) P(1) exit() ans = [] a = sorted((p[i], i) for i in R(n)) for i in R(n): if i == 0 and abs(a[i + 1][0] - a[i][0]) > s: ans.append(a[i][1]) if i == n - 1 and abs(a[i - 1][0] - a[i][0]) > s: ans.append(a[i][1]) if 0 < i < n - 1: if abs(a[i - 1][0] - a[i][0]) > s and abs(a[i + 1][0] - a[i][0]) > s: ans.append(a[i][1]) ans.sort() P(len(ans)) P(*[i + 1 for i in ans])