Задачи
Поддиректорий
Поддиректорий
В этой задаче под словом "словарь" мы будем иметь в виду список упорядоченных по алфавиту слов вместе с их значениями на одном и том же языке. Словарь должен содержать объяснение любого слова, которое встречается в объяснениях к другим словам. Если словарь содержит описание \textbf{N} слов, то он содержит в себе в точности \textbf{N} различных слов. Также известно, что никакое слово в словаре не используется в объяснении самого себя.
Поддиректорием называется набор слов из словаря вместе с их объяснениями, который можно опубликовать как отдельный словарь, удовлетворяющий выше приведенному условию. Проектом в курсе Вычислительной Лингвистики является создание Базы Лексического Знания, представляющей собой знания, выраженные словами. Вам необходимо создать фонд знаний на базе словаря.
Компьютеру изучать новые слова автоматически достаточно тяжело. Поэтому мы решили вручную обучить его нескольким обыденным словам. Обучение начнем с некоторого поддиректория. Поняв эти слова, компьютер может расширить свои знания слово за словом на весь словарь. Например, слово "\textbf{xyz}" компьютер сможет понять, только если он знает значения всех слов в определении \textbf{xyz}. Напишите программу, которая найдет наименьшую расширяемую поддиректорию для заданного словаря.
\InputFile
Входные данные состоят из нескольких тестов. Первая строка каждого теста содержит количество слов \textbf{n} (\textbf{1} ≤ \textbf{n} ≤ \textbf{100}) в словаре. Каждая из следующих \textbf{n} строк содержит слово и его определение (содержащее не более \textbf{30} слов). Слова разделены пробелом, состоят из прописных букв английского алфавита и содержат не более \textbf{25} символов.
\OutputFile
Для каждого теста вывести в первой строке количество слов в поддиректории, а во второй строке вывести сами слова, отсортированные в алфавитном порядке и разделенные пробелами.
Входные данные #1
5 aue oizer piqoi oizer doy oizer hweqlo hweqlo hweqlo piqoi aue oizer piqoi piqoi aue aue 0
Выходные данные #1
3 aue oizer piqoi