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