Игра в слова
Двое играют в следующую игру:
Первый игрок загадывает слово W и говорит второму его длину. Второй игрок пытается отгадать слово, называя слова G_i такой же длины, а первый на каждое названное слово отвечает, чётно или нечётно количество позиций в G_i, на которых стоят правильно угаданные буквы, находящиеся в тех же местах слова W. Так продолжается до тех пор, пока второй игрок не сможет целиком назвать слово, загаданное первым.
По данным словам G_i и ответам на них выясните, каким могло быть загаданное слово W.
В этой задаче "словом" называется любая последовательность заглавных латинских букв.
Входные данные
В первой строке входного файла записаны два целых неотрицательных числа N и M - количество названных вторым игроком слов, для которых количество совпадений чётно, и количество слов, для которых оно нечётно. Суммарно 1 ≤ N + M ≤ 64.
Во второй строке записаны через пробел N слов одинаковой длины, состоящие из заглавных латинских букв - те названные слова, для которых количество совпадений чётно.
Во третьей строке записаны через пробел M слов одинаковой длины, состоящие из заглавных латинских букв - те названные слова, для которых количество совпадений нечётно.
Длины слов в обеих строках одинаковы и находятся в пределах от 1 до 9 символов, включительно. Кроме того, известно, что количество возможных загаданных слов W в каждом тесте не превосходит 1000.
Выходные данные
В первой строке выходного файла выведите число K - количество различных слов, которые мог загадать первый игрок. Во второй строке выведите все эти слова в лексикографическом порядке через пробел. Слова должны состоять из заглавных латинских букв.