Палиндромная шифровка
시간 제한1초메모리 제한1024 MB
n개의 짧은 문자열 s_j가 주어질 때, 각 질의 문자열 t_i에 대해 t_i 뒤에 어떤 s_j를 붙여 팰린드롬을 만들 수 있는지 판정한다.
문제
Кейтлин Кирамман удалось поймать одного из приспешников Силко и найти у него зашифрованное сообщение из строк , составленных из маленьких латинских букв. Длина каждой строки не превосходит .
К сожалению, сообщение оказалось неполным, и, не имея всего текста, расшифровать послание нельзя. Известно, что каждая полученная строка является правой долей -й части сообщения, то есть у каждой строки не хватает некоторого префикса (возможно, пустого). Также известно, что изначально каждая часть сообщения была палиндромом. То есть, в конечном итоге, каждая --- это суффикс некоторого палиндрома.
В поисках недостающих частей Кейтлин обратилась в архив, где ей выдали строк , которые потенциально могут дополнять строки до палиндромов. Каждая строка также состоит из маленьких латинских букв.
Кейтлин хочет проверить, могут ли полученные в архиве материалы быть кусками исходной шифровки. Для этого ей для каждой строки нужно понять, существует ли такое , что --- палиндром (здесь за знак сложения обозначена операция конкатенации).
입력
В первой строке ввода через пробел даны два целых числа и (; ).
Во второй строке перечислены строк , разделенные пробелами.
Третья строка в том же формате содержит строк , разделенные пробелами. Гарантируется, что .
출력
Для каждой строки выведите на отдельной -й строке слово <<YES>> (без кавычек), если существует такое , что --- палиндром, и <<NO>> иначе.