На честь Дня Незалежності Байтландії уряд вирішив організувати військовий парад. Почесному караульному підрозділу Байтландії було доручено підготувати церемоніальний стрій солдатів. Це відповідальне завдання було довірено капітану Кілобайту, який багато років сумлінно служить у підрозділі.
Капітан Кілобайт знає, що у підрозділі солдатів, а зріст -го солдата (1 \le i \le N) дорівнює H_i нанометрів. Строєм називається будь-яка послідовність цілих чисел A_i така, що 1 \le A_i \le N і A_i \ne A_j, якщо i \ne j. Довжина строю — це довжина послідовності. Стрій називається церемоніальним, якщо різниця зросту між будь-якою парою сусідніх солдатів не перевищує нанометрів. Тобто, для послідовності A_i довжини виконується умова |H_{A_i} - H_{A_{i+1}}| \le K для всіх 1 \le i \le M-1.

Рисунок 1. Опис другого прикладу.
Капітан Кілобайт вважає, що його підвищення залежить від довжини церемоніального строю, який він організує. Ваше завдання — допомогти капітану Кілобайту виконати наказ і підготувати церемоніальний стрій максимально можливої довжини.
У першому рядку вхідних даних записано два натуральних числа (2 \le N \le 10^5) і (0 \le K \le 10^9), розділені пробілом.
Другий рядок містить рівно цілих чисел H_i (1 \le H_i \le 10^9) — зріст солдатів. Числа розділені пробілами. Солдати пронумеровані в порядку подання у вхідних даних, починаючи з .
У першому рядку вихідних даних виведіть одне ціле число — максимальну довжину церемоніального строю.
У другому рядку виведіть цілих чисел A_i, розділених пробілами, — номери солдатів у церемоніальному строю. Солдати пронумеровані в порядку, в якому вони подані у вхідних даних. Якщо існує кілька рішень, виведіть будь-яке з них.
Приклад 1