Задача A. Темные комнаты
Ограничение по времени | Ограничение по памяти |
---|---|
2 секунды | 256 мегабайт |
У вас есть комнат, которые соединены - коридорами. Известно, что с любой комнаты можно дойти до любой другой. В каждой комнате есть ровно одна лампочка. Есть кнопок пронумерованных от до , кнопка с номером включает или выключает лампочки во всех комнатах на пути с комнаты до комнаты . Состояние комнаты задается одним числом или , где означает лампочка выключена, а означает, что она включена.
Алан пришел в гости к вам. Вы узнали, что Алан будет чуствовать себя как дома, если состояния комнат будут , , ..., для комнат от до . Вы должны найти какие кнопки и в каком порядке нажимать, чтобы Алан чуствовал себя как дома. Так как вы не хотите заставлять ждать гостя, в последовательности не может быть больше чем кнопок. Если невозможно найти такую последовательность, вы должны вывести -. Изначально все лампочки во всех комнатах выключены.
Формат входного файла
В первой строке входных данных задается одно целое число () — количество комнат. Во второй строке задаются чисел: , , ..., () желаемое состояния комнат. Каждая из следующих - строк описывает один коридор двумя целыми числами и (), что означает есть корридор между комнатами и .
В следующей строке задается одно целое число () — количество кнопок. В каждой из следующих строк задается описание кнопок: в -й строке описание -й кнопки три целых числа , и , где и () комнаты которые описывают путь, равно , если кнопка выключает лампочки или , если она включает лампочки.
Формат выходного файла
Выведите `-'(без кавычек), если невозможно найти нужную последовательность. Иначе, выведите количество кнопок в последовательности и в следущей строке выведите чисел — номера кнопок в порядке из нажатия.
Примеры
Вход
6
1 1 0 0 1 1
1 2
1 3
3 4
3 5
4 6
4
1 2 1
2 5 1
3 4 0
1 6 1
Выход
3
4 2 3
Вход
3
0 0 1
1 3
1 2
1
1 3 1
Выход
-1