Задачі
Гра у слова
Гра у слова
Двоє грають у наступну гру:
Перший гравець загадує слово \textbf{W} і говорить другому його довжину. Другий гравець пробує відгадати слово, називаючи слова \textbf{G_i} такої ж довжини, а перший для кожного названого слово відповідає, парна чи непарна кількість позицій у \textbf{G_i}, на яких стоять правильно вгадані букви, які знаходяться у тих же місцях слова \textbf{W}. Так продовжується до тих пор, доки другий гравець не зможе повністю назвати слово, загадане першим.
За заданими словами \textbf{G_i} і відповідями на них виясніть, яким могло бути загадане слово \textbf{W}.
У цій задачі "\textit{словом}" називається довільна послідовність великих латинських літер.
\InputFile
У першому рядку вхідного файлу записано два цілих невід'ємних числа \textbf{N} в \textbf{M} - кількість названих другим гравцем слів, для яких кількість співпадень парна, і кількість слів, для яких вона непарна. Сумарно \textbf{1} ≤ \textbf{N + M} ≤ \textbf{64}.
У другому рядку записано через пропуск \textbf{N} слів однакової довжини, які складаються з великих латинських літер - ті названі слова, для яких кількість співпадень парна.
У третьому рядку записано через пропуск \textbf{M} слів однакової довжини, які складаються з великих латинських літер - ті названі слова, для яких кількість співпадень непарана.
Довжини слів у обох рядках однакові і знаходяться у межах від \textbf{1} до \textbf{9} символів, включно. Кріме того, відомо, що кількість можливих загаданих слвв \textbf{W} у кожному тесті не перевищує \textbf{1000}.
\OutputFile
У першому рядку вихідного файлу виведіть число \textbf{K} - кількість різних слів, які міг загадати перший гравець. У другому рядку виведіть усі ці слова у лексикографічному порядку через пропуск. Слова повинні складатись з великих латинських літер.
Вхідні дані #1
3 3 DAY MAY BUY SAY DUE TEN
Вихідні дані #1
1 SEE