ЗАДАЧА B

Налево

Имя входного файла:left.in
Имя выходного файла:left.out
Ограничение по времени:1 секунда
Ограничение по памяти:64 Мб

Как известно, схема городских дорог задаётся графом на плоскости. Вершины этого графа – перекрёстки – точки с целочисленными координатами на плоскости, а рёбра – дороги. Будем считать, что между двумя перекрестками построено не более одной дороги и не существует дорог, соединяющих перекресток с самим собой. Ваша задача – найти такой путь от перекрёстка A до перекрёстка B, чтобы на всех перекрёстках поворачивать только налево. Поворотами налево считаются все повороты на угол не более 180 градусов против часовой стрелки. Путь с перекрёстка A можно начинать в любую сторону.

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

Первая строка входного файла содержит N и М – количество перекрестков и количество дорог (1<=N<=10000, 1<=M<=10000).
Вторая строка содержит числа a и b – номера перекрестков A и B соответственно. Каждая из следующих N строк содержит пару целых чисел через пробел Xi и Yi – координаты перекрестка i. Последние M строк содержат 2M чисел, каждая пара чисел – номера перекрестков соединенных дорогой. Все координаты по модулю не превосходят 10000. На одном перекрестке не могут заканчиваться более 20 дорог.

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

Если, сохраняя вышеуказанные правила невозможно добраться от перекрёстка A до перекрёстка B, то нужно вывести -1. Иначе нужно вывести количество дорог на этом пути, а затем номера соответствующих дорог в порядке объезда. Если по одной и той же дороге необходимо проехать 2 раза подряд номер этой дороги нужно вывести только один раз. Если есть несколько вариантов ответа, вывести любой.

Пример


left.in left.out
2 1
1 2
0 0
1 1
1 2
1 1