D. Емкости
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Чтобы содержать свое поле в идеальном состоянии, Пете необходимо иногда поливать его. Чтобы полить поле, Пете необходимо ровно V мл воды.

Также у Пети есть N емкостей, i-я первоначально заполнена на ai мл. Емкости достаточно большие и любая из них позволяет хранить в себе любой объем воды.

Чтобы переливать воду между емкостями, у Пети имеется ковш объемом K мл. Данным ковшом можно зачерпывать воду из одной емкости и выливать в какую-то емкость (нельзя зачерпнуть воду одновременно из нескольких емкостей, и выливать ее необходимо полностью). При этом зачерпнуть можно min(v, K), где v — текущий объем воды в выбранной емкости.

Можно ли с помощью данного ковша получить в одной из емкостей объем, строго равный V? Если возможно, выведите необходимую последовательность операций. Если способов получить искомый объем несколько — выведите любой.

Входные данные

В первой строке заданы 3 целых числа: N (2 ≤ N ≤ 5000), K (1 ≤ K ≤ 5000) и V (0 ≤ V ≤ 109) — количество емкостей, объем ковша и требуемый объем воды в емкости, соответственно.

В следующей строке задано N целых чисел ai (0 ≤ ai ≤ 105), где ai — первоначальный объем воды в i-й емкости.

Выходные данные

Если невозможно получить объем V, выведите NO.

В противном случае выведите в первой строке YES, а далее со следующей строки операции в следующем формате:

В каждой строке по 3 числа — описание очередной сжатой операции: «cnt x y» (1 ≤ cnt ≤ 109, 1 ≤ x, y ≤ N), где x — номер емкости, откуда надо черпать, y — номер емкости, куда выливать, а cnt — количество операций «перелить воду из емкости x в емкость y».

Количество строк со сжатыми операциями не должно превышать N + 5.

Примеры
Входные данные
2 3 5
2 3
Выходные данные
YES
1 2 1
Входные данные
2 3 4
2 3
Выходные данные
NO
Входные данные
5 2 0
1 3 5 7 9
Выходные данные
YES
2 2 1
3 3 1
4 4 1
5 5 1