Олимпиадный тренинг

Задача . B. Хитрый шаблон


Заданы две строки \(a\) и \(b\), состоящие из строчных латинских букв.

Шаблон \(t\) — это строка, состоящая из строчных латинских букв и звездочек (символ '*'). Шаблон называется хитрым, если количество звездочек в нем меньше или равно количеству букв в нем.

Говорят, что строка \(s\) подходит под шаблон \(t\), если можно заменить каждую звездочку в \(t\) на строку из строчных лантинских букв (возможно, пустую) так, чтобы он стал равен \(s\).

Найдите такой хитрый шаблон, что и \(a\), и \(b\) подходят под него или скажите, что такого шаблона не существует. Если существуют несколько ответов, то выведите любой из них.

Входные данные

В первой строке записано одно целое число \(t\) (\(1 \le t \le 10^4\)) — количество наборов входных данных.

В первой строке каждого набора входных данных записана строка \(a\) (\(1 \le |a| \le 50\), где \(|a|\) — это длина \(a\)), состоящая из строчных латинских букв.

Во второй строке записана строка \(b\) (\(1 \le |b| \le 50\)), состоящая из строчных латинских букв.

Выходные данные

На каждый набор входных данных выведите «NO», если не существует хитрого шаблона, под который подходят и \(a\), и \(b\). Иначе в первой строке выведите «YES», а во второй строке выведите шаблон. Если существуют несколько ответов, то выведите любой из них.

Шаблон должен состоять только из строчных латинских букв и звездочек (символ '*'). Количество звездочек должно быть меньше или равно количеству букв.

Примечание

В первом наборе входных данных в шаблоне «*b» можно заменить единственную звездочку на «aaa» и получить «aaab» (что равно \(a\)) или на «zzz» и получить «zzzb» (что равно \(b\)).

В третьем наборе входных данных шаблон «*o*» не хитрый, так как в нем больше звездочек, чем букв. Не существует хитрых шаблонов, под которые подходят и \(a\), и \(b\).

В четвертом наборе входных данных в шаблоне «a*a*a*a» можно заменить все звездочки на пустые строки и получить «aaaa» (что равно \(a\)) или два из них на «a» и два на пустые строки и получить «aaaaaa» (что равно \(b\)).

В пятом наборе входных данных в шаблоне «abcd» нет звездочек, поэтому только «abcd» может подходить под него (что по счастливой случайности равно и \(a\), и \(b\)).


Примеры
Входные данныеВыходные данные
1 6
aaab
zzzb
codeforces
atcoder
codeforces
tokitlx
aaaa
aaaaaa
abcd
abcd
c
f
YES
*b
YES
*co*
NO
YES
a*a*a*a
YES
abcd
NO

time 2000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя