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

Спортсмен стартует из точки xstart = 0 и бежит в точку с координатой xfinish = m (на прямой). Также спортсмен умеет прыгать — для прыжка он сначала должен взять разбег длины не менее s метров (при этом на протяжении этих s метров на его пути не должно быть препятствий), а после этого он может прыгнуть на длину не более d метров. Бегать и прыгать разрешено только в направлении слева направо. Начинать и заканчивать прыжок можно только в точках с целочисленными координатами, в которых нет препятствий. Чтобы преодолеть какое-то препятствие, нужно приземлиться в точке, которая находится строго правее этого препятствия.

На пути спортсмена есть n препятствий в точках с координатами x1, x2, ..., xn. Пробегать через препятствия нельзя, их можно только перепрыгивать. Перед вами стоит задача определить, сможет ли спортсмен добраться до финишной точки.

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

В первой строке входных данных следуют четыре целых числа n, m, s и d (1 ≤ n ≤ 200 000, 2 ≤ m ≤ 109, 1 ≤ s, d ≤ 109) — количество препятствий на пути бегуна, координата финишной точки, длина разбега перед прыжком и максимальная длина прыжка соответственно.

Во второй строке следует последовательность из n целых чисел a1, a2, ..., an (1 ≤ ai ≤ m - 1) — координаты препятствий. Гарантируется, что в стартовой и финишной точке нет препятствий, а также в одной точке не может быть более одного препятствия. Координаты препятствий заданы в произвольном порядке.

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

Если бегун не сможет добраться до финишной точки, выведите в первую строку выходных данных «IMPOSSIBLE» (без кавычек).

Если же спортсмен может добраться от старта до финиша, то выведите любой способ сделать это в следующем формате:

  • выведите строку вида «RUN X» (где «X» должно быть целым положительным числом), если очередные «X» метров спортсмен должен бежать;
  • выведите строку вида «JUMP Y» (где «Y» должно быть целым положительным числом), если спортсмен начинает прыжок и очередные «Y» метров должен находиться в полете.

Все команды «RUN» и «JUMP» должны строго чередоваться, начиная с «RUN», а также они должны быть выведены в хронологическом порядке. Не разрешается перепрыгивать финишную точку, но разрешается в ней приземляться после прыжка. Спортсмен должен остановиться, как только достигнет финиша.

Примеры
Входные данные
3 10 1 3
3 4 7
Выходные данные
RUN 2
JUMP 3
RUN 1
JUMP 2
RUN 2
Входные данные
2 9 2 3
6 4
Выходные данные
IMPOSSIBLE