473. Как курица лапой

Не решаласьСложная

Программист Никита увлекается генеалогией и часто сталкивается с тем, что в старинных метрических книгах записи сложно разобрать из-за неразборчивого почерка или выцветших чернил. Он решил написать приложение, которое позволяет сканировать и распознавать такие записи. Из-за большого количества других проектов у Никиты не хватает времени довести работу до конца, и он просит вас помочь с одной подзадачей. Сканер, который он написал, очень неточный и часто делает ошибки в распознанных словах. Вам нужно подобрать наиболее вероятное слово исходя из результата, выданного сканером. Известно, что если не существует слова, которое выдал сканер, то где-то закралась ошибка. Возможно, что даже не одна. Никита сказал, что при ошибке сканер с вероятностью $50\%$ поставил не ту букву, с вероятностью $10\%$ пропустил букву и с вероятностью $40\%$ добавил лишнюю. Чтобы не выдавать совсем уж разные названия, будем считать, что слова, похожие с вероятностью $\leq 10^{–10}$, нельзя выдавать как ответ.

Формат ввода

В первой строке входных данных находится длина строки, полученной от сканера, $1 \leq N \leq 100$, а в следующей — она сама.

В третьей строке следует размер словаря 1 $\leq M \leq 100$.

В следующих $M \times 2$ строках следует словарь.

В нечётных строках содержатся длины строк из словаря $1 \leq Z_i \leq 100$, а в чётных — сами строки.

Все слова во входных данных состоят из строчных латинских букв.

Формат вывода

В единственной строке выходных данных должно находиться наиболее вероятное слово или NO MATCH, если таковых нет. Если наиболее вероятными являются несколько слов, то необходимо вывести минимальное лексикографически.

Ограничения

Ограничение времени

1 с

Ограничение памяти

64 МБ

Пример 1

Ввод
3
abc
3
3
pac
2
ab
4
abcd
Вывод
ab

Пример 2

Ввод
5
abcde
3
5
amntp
2
ce
6
abacde
Вывод
abacde

Пример 3

Ввод
4
robn
4
4
robp
3
obn
5
robna
4
robn
Вывод
robn

Теги

Нужно войти, чтобы отправить решение.Войти