PATTERN
  • Шаблон
    PATTERN


Описание
Чтобы быстрее найти несколько интересующих нас строк символов (например, названий файлов), используются шаблоны. Шаблон - это строка символов, которая может содержать только маленькие буквы латинского алфавита, цифры, вопросительные знаки и звездочки. В шаблоне две или более звездочек не могут находится рядом. Допустимы, например, шаблоны "ab*", "ne?z*inu", "??3", "*1*", но не "A?", "#13", "a**b". 

Будем говорить, что строка символов удовлетворяет шаблону, если каждой букве шаблона соответствует та же самая буква строки (большая или маленькая), каждой цифре соответствует та же самая цифра, вопросительному знаку соответствует одна любая буква или цифра, а звездочке - произвольная последовательность подряд идущих символов (в том числе и пустая последовательность).

Так, например, шаблону "?a*n?" удовлетворяют строки "gans", "salons", "PAUNA", но не удовлетворяют "cirvis", "spainis" и "SVINS".

Казимир задумал некоторый шаблон и составил два списка слов - список "хороших" слов, в котором содержатся слова, удовлетворяющие шаблону, и список "плохих" слов, в котором слова задуманному шаблону не удовлетворяют.

Задача
Напишите программу PATTERN, которая по этим двум спискам находит задуманный Казимиром шаблон


Входные данные
В первой строке текстового файла GOOD.DAT дано натуральное число NХОРОШИЕ - количество данных слов, удовлетворяющих задуманному Казимиром шаблону. Каждая из следующих NХОРОШИЕ строк содержит одно слово, удовлетворяющее шаблону.

В первой строке текстового файла BAD.DAT дано натуральное число NПЛОХИЕ - количество данных слов, не удовлетворяющих задуманному Казимиром шаблону. Каждая из следующих NПЛОХИЕ строк содержит одно слово, не удовлетворяющее шаблону.

Каждое из заданных во входных файлах слово содержит только большие и маленькие буквы латинского алфавита и цифры. Длина каждого слова не превосходит 15 символов. В каждом файле дано не меньше одного и не больше десяти слов.

Выходные данные
В единственной строке текстового файла
PATTERN.REZ следует выводить возможный задуманный Казимиром шаблон. 

Если имеется несколько решений, то следует выводить любой из них. Известно, что для каждого теста, используемого при проверке программы, существует по крайней мере один шаблон.


Например:

GOOD.DAT

lausks 
tase3 
TaNtUkS

BAD.DAT
2
saule
aukstums

PATTERN.REZ
?a*s*