Файндворд
Одним из литературных развлечений является файндворд – текст, в котором на стыке двух слов могут быть спрятаны другие слова. Например, в тексте "Был месяц май. Кактус стоял на окне." спрятано слово "майка".
Найдите все спрятанные в тексте слова из заданного списка, если разделителями слов текста являются пробелы, концы строк и заданный набор знаков препинания.
Входные данные
В первой строке находится три целых числа через не менее чем 1 пробел: k – число строк текста, (1 ≤ k ≤ 100), каждая строка не более 127 символов, n – число слов, которые надо найти, (1 ≤ n ≤ 100), и m – число знаков препинания (0 ≤ m ≤ 10), которые могут разделять слова. Следующие k строк содержат текст (состоящий из строчных и прописных букв латинского алфавита, цифр, пробелов и знаков препинания из заданного набора). Затем в n строках заданы искомые слова (из того же набора символов, кроме пробелов и знаков препинания, длина каждой строки не более 20 символов, все слова списка различны). Последняя строка состоит из m символов, которые следует считать знаками препинания (знаки препинания в тексте могут как отделяться пробелами, так и не отделяться).
Выходные данные
Вывести найденные слова, по одному в строке, в том порядке, в каком они спрятаны в тексте (слово может быть спрятано только на стыке двух слов, а не внутри другого слова). Порядок слова определяется по его первой букве. Если спрятанное слово встречается не один раз, то его следует выводить только один раз, считая его порядком то место текста, где оно спрятано впервые. Если в одном и том же месте спрятано 2 слова, то выводить их следует в том порядке, в каком они были во входном списке. Известно, что хотя бы одно из искомых слов действительно спрятано.