E. О группах и правах
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
256 мегабайт
ввод
stdin
вывод
stdout

Специалист по компьютерной безопасности Алексей настраивает права доступа к секретной информации о задачах одного соревнования по программированию. Система безопасности устроена так, что пользователи объединяются в группы, занумерованные от 1 до n. Некоторые группы могут включать другие. Каждая группа непосредственно включена только в одну, но в одной группе может содержаться несколько других. Группа 1 прямо или опосредованно включает в себя все остальные группы. Если группа не включает никаких других, значит она представляет собой пользователя. И наоборот, если группа представляет собой пользователя, она не содержит других групп.

Для каждой из групп доступ к секретной информации может быть разрешен, запрещен или не определен. Если доступ для данной группы не определен, то он наследуется от группы, включающей данную. Если и для той группы доступ не определен, то он снова наследуется, и так далее. Если доступ не определен и для группы 1, то считается, что для рассматриваемой группы он запрещен.

Алексей располагает предписаниями о группах, правах доступа для них, а так же о том, как группы включают друг друга. Он хотел бы оптимизировать имеющуюся у него структуру данных, чтобы хранить информацию только только о тех группах, которым разрешен доступ, а для остальных считать его не определенным. При этом доступ для каждого пользователя должен быть в точности таким, какой следует из имеющихся предписаний. Кроме того, Алексей хотел бы, чтобы новая структура данных занимала меньше памяти, так что записей о разрешениях в ней должно быть минимальное количество. Из всех таких структур он хотел бы выбрать ту, для которой сумма уровней вложенности всех групп, о которых хранится информация, была минимальной.

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

В первой строке содержится единственное целое число n (1 ≤ n ≤ 200000) — число групп.

Далее следует строка из n символов «+», «-», «0». Если на позиции i стоит символ «+», то доступ для i-ой группы разрешен, если «-» — запрещен, если «0» — не определен.

Далее следует n - 1 строка, в каждой из которых содержатся два целых числа через пробел: ai и bi (1 ≤ ai, bi ≤ n). Каждая такая запись означает, что группа ai включает в себя группу bi.

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

В первой строке выведите единственное целое число m — минимальное количество групп, относительно которых требуется хранить записи о том, что для них разрешен доступ к секретной информации.

Во второй строке выведите m целых чисел через пробел — номера этих групп — в возрастающем порядке.

Примеры
Входные данные
10
+-+000++-+
1 2
1 5
1 9
2 6
2 8
5 4
5 10
9 3
9 7
Выходные данные
3
5 8 9