Задача D. Парное упражение

Автор:И. Туфанов   Ограничение времени:1 сек
Входной файл:input.txt   Ограничение памяти:256 Мб
Выходной файл:output.txt  
Максимальный балл:100  

Условие

Однажды учитель физкультуры решил провести на уроке новое упражнение. Ученики выполняют упражнение в парах. При этом важно, чтобы рост учеников в паре отличался не более чем на k сантиметров.

Учитель построил перед собой класс из n учеников. Однако выяснилось, что ребята встали не по росту, а в некотором произвольном порядке. Не желая тратить время на перепостроение, учитель решил действовать по следующему алгоритму. Он находит в строю пару стоящих рядом учеников, рост которых отличается не более чем на k сантиметров и отправляет их выполнять упражнение. Это действие учитель повторяет до тех пор, пока такие пары существуют. Если таких пар нет, оставшиеся в строю ученики отправляются играть в волейбол.

Помогите учителю выбрать пары таким образом, чтобы их получилось как можно больше.

В первом примере имеется 7 учеников. Учитель может вызвать учеников 2 и 3 (их рост 175 и 170, разница не превосходит k = 5), после чего они выйдут из строя, и останутся ученики с номерами 1, 4, 5, 6, 7. Вторую пару составляют ученики 1 и 4, имеющие нулевую разницу в росте (рост обоих равен 180). Ученики с номерами 5 и 7 имеют один и тот же рост 200, но учитель не может их вызвать, поскольку они стоят не рядом друг с другом. Если бы учитель вызвал сначала учеников 1 и 2, то оставшиеся ученики не смогли бы образовать ни одной пары.

Система оценивания

Рекомендуется рассмотреть следующие частные случаи:

Формат входного файла

Во начале входного файла записаны целые числа n и k. Далее следует n целых чисел hi. Число hi обозначает рост ученика, стоящего в строю i-ым.

Формат выходного файла

Первым числом выходного файла должно быть количество найденных пар p. Далее должно следовать p пар чисел, обозначающих исходные номера учеников, отправляющихся выполнять упражнение, в порядке их вызова учителем.

Ограничения

1 ≤ n ≤ 500;

100 ≤ hi ≤ 300;

0 ≤ k ≤ 200;

Примеры тестов

Входной файл (input.txt) Выходной файл (output.txt)
1
7 5
180 175 170 180 200 150 200
2
2 3
1 4
2
3 0
180 170 170 
1
2 3

0.044s 0.007s 15