Робот-доставщик
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
512 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Сэм устал доставлять заказы самостоятельно, поэтому он решил построить робота, который будет помогать ему в доставке. Для работы робота-доставщика нужны две радиовышки. Область, в которой роботу предстоит доставлять заказы, представляет собой плоскость. Введём на ней координатные оси: ось $$$OX$$$ направлена слева направо, а ось $$$OY$$$ направлена снизу вверх. Точку с координатами $$$x$$$ и $$$y$$$ обозначим как $$$(x, y)$$$. Сэм расположил первую радиовышку в точке $$$(0, 0)$$$, а вторую радиовышку в точке $$$(1, 0)$$$.

Так как Сэм не очень хорош в строительстве роботов, робот-доставщик умеет выполнять всего четыре команды.

  1. Поехать из текущей точки $$$p$$$ к первой радиовышке, доехать до неё, повернуть на $$$90$$$ градусов налево, и проехать в новом направлении расстояние, равное расстоянию от $$$p$$$ до первой радиовышки. После выполнения этой команды, робот окажется в точке $$$q$$$, которая равна точке $$$p$$$, повернутой на $$$90$$$ градусов по часовой стрелке относительно точки $$$(0, 0)$$$.
  2. Поехать из текущей точки $$$p$$$ к первой радиовышке, доехать до неё, повернуть на $$$90$$$ градусов направо, и проехать в новом направлении расстояние, равное расстоянию от $$$p$$$ до первой радиовышки. После выполнения этой команды, робот окажется в точке $$$q$$$, которая равна точке $$$p$$$, повернутой на $$$90$$$ градусов против часовой стрелки относительно точки $$$(0, 0)$$$.
  3. Поехать из текущей точки $$$p$$$ ко второй радиовышке, доехать до неё, повернуть на $$$90$$$ градусов налево, и проехать в новом направлении расстояние, равное расстоянию от $$$p$$$ до второй радиовышки. После выполнения этой команды, робот окажется в точке $$$q$$$, которая равна точке $$$p$$$, повернутой на $$$90$$$ градусов по часовой стрелке относительно точки $$$(1, 0)$$$.
  4. Поехать из текущей точки $$$p$$$ ко второй радиовышке, доехать до неё, повернуть на $$$90$$$ градусов направо, и проехать в новом направлении расстояние, равное расстоянию от $$$p$$$ до второй радиовышки. После выполнения этой команды, робот окажется в точке $$$q$$$, которая равна точке $$$p$$$, повернутой на $$$90$$$ градусов против часовой стрелки относительно точки $$$(1, 0)$$$.

Сейчас робот находится в точке $$$(x_1, y_1)$$$, и Сэм хочет отправить его в точку $$$(x_2, y_2)$$$. Он подозревает, что это не всегда возможно, а иногда может быть слишком долго. Помогите Сэму построить последовательность команд для робота, длинной не более $$$10^6$$$, после выполнения которых, робот переместится из точки $$$(x_1, y_1)$$$ в точку $$$(x_2, y_2)$$$. Либо сообщите, что искомой последовательности команд длиной не более $$$10^6$$$ не существует.

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

В первой строке даны два числа $$$x_1$$$ и $$$y_1$$$ ($$$-100\,000 \le x_1, y_1, \le 100\,000$$$) — координаты исходной позиции робота. В следующей строке даны два числа $$$x_2$$$ и $$$y_2$$$ ($$$-100\,000 \le x_2, y_2 \le 100\,000$$$) — координаты точки, в которой робот должен оказаться после выполнения команд. Гарантируется, что исходная точка не совпадает с точкой назначения.

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

Если не существует искомой последовательность команд длиной не более $$$10^6$$$, выведите «-1». Иначе, в первой строке выведите положительное число $$$k$$$ — количество команд в вашей последовательности ($$$k \le 10^6$$$). А в следующей строке выведите строку $$$s$$$, состоящую из $$$k$$$ цифр $$$1$$$, $$$2$$$, $$$3$$$ и $$$4$$$ — номера команд в порядке их выполнения.

Обратите внимание, что вам не требуется минимизировать длину последовательности команд. Если ответов несколько, вы можете вывести любой.

Примеры

Входные данные
0 1
1 -2
Выходные данные
2
24
Входные данные
0 1
1 1
Выходные данные
-1

Примечание

В первом примере, после первой операции робот покажется в точке $$$(-1, 0)$$$, а после второй в точке $$$(1, -2)$$$.

В втором примере робот не может достичь точки назначения.