ТПУ: основной тур
K. Пароль от старого сейфа
У Виктора есть старый сейф, пароль от которого он забыл. К счастью, у него есть список вариантов, среди которых, как он думает, находится верный.
Панель для набора пароля состоит из n цилиндров с буквами английского алфавита. Вращая i-й цилиндр, можно выбрать букву на i-й позиции. На каждом цилиндре размещены все 26 букв английского алфавита, но, так как сейф уже старый, не каждый цилиндр может быть зафиксирован в любом из положений.
Зная для каждого цилиндра набор буков, которые могут быть выбраны для соответствующей позиции, помогите Виктору найти среди его вариантов пароля те, которые он сможет набрать.
Первая строка входных данных содержит одно целое число n — количество цилиндров (1 \leqslant n \leqslant 100).
Последующие n строк состоят из букв, которые могут быть выбраны при помощи соответствующего цилиндра. Каждая такая строка состоит только из заглавных букв латинского алфавита, которые не повторяются в пределах строки.
Следующая строка содержит одно целое число m — количество вариантов пароля (1 \leqslant m \leqslant 1000).
Последующие m строк содержат варианты паролей. Каждая такая строка состоит только из заглавных букв английского алфавита и имеет длину в точности равную n.
В первой строке выведите одно целое неотрицательное число k — количество паролей из списка Виктора, которые могут быть набраны на панели сейфа.
В последующих k строках выведите эти пароли по одному на строку. Выводить пароли следует в лексикографическом (алфавитном) порядке.
Стандартный ввод | Стандартный вывод |
---|---|
5 REAL EOLN CRT KNUTH ASM 6 ARRAY ROCKS QUEUE LERNA TREES LINUX | 2 LERNA ROCKS |