Заданы две строки \(a\) и \(b\), состоящие из строчных латинских букв.
Шаблон \(t\) — это строка, состоящая из строчных латинских букв и звездочек (символ '*'). Шаблон называется хитрым, если количество звездочек в нем меньше или равно количеству букв в нем.
Говорят, что строка \(s\) подходит под шаблон \(t\), если можно заменить каждую звездочку в \(t\) на строку из строчных лантинских букв (возможно, пустую) так, чтобы он стал равен \(s\).
Найдите такой хитрый шаблон, что и \(a\), и \(b\) подходят под него или скажите, что такого шаблона не существует. Если существуют несколько ответов, то выведите любой из них.
Выходные данные
На каждый набор входных данных выведите «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
|