Робот-доставщик

아직 제출이 없습니다시간 제한2초메모리 제한1024 MB

문제

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

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

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

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

입력

В первой строке даны два числа x_1x\_1 и y_1y\_1 (100,000x_1,y_1,100,000-100\\,000 \le x\_1, y\_1, \le 100\\,000) --- координаты исходной позиции робота. В следующей строке даны два числа x_2x\_2 и y_2y\_2 (100,000x_2,y_2100,000-100\\,000 \le x\_2, y\_2 \le 100\\,000) --- координаты точки, в которой робот должен оказаться после выполнения команд. Гарантируется, что исходная точка не совпадает с точкой назначения.

출력

Если не существует искомой последовательность команд длиной не более 10610^6, выведите <<-1>>. Иначе, в первой строке выведите положительное число kk --- количество команд в вашей последовательности (k106k \le 10^6). А в следующей строке выведите строку ss, состоящую из kk цифр 11, 22, 33 и 44 --- номера команд в порядке их выполнения.

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

힌트

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

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