Вираз#7496

Вираз

5 секунд
256 мегабайтів
Легка

При обчисленні регулярні вирази є потужним інструментом для текстового пошуку та зіставлення рядків. У цій задачі використовується спрощена версія регулярних виразів:

Дужки можна опустити, у цій задачі зірка Кліні має найвищий пріоритет, конкатенація має середній пріоритет і чергування має найнижчий пріоритет. Тобто "abc*|de" означає "(ab(c*))|(de)".

Наприклад, рядок "abcabcab" відповідає "a(bc|a)*ab", але рядок "abcbab" ні.

Вам слід знайти найкоротший рядок, який відповідає даному регулярному виразу E, і містить заданий підрядок S.

Вхідні дані

Перший рядок містить регулярний вираз E. Другий рядок містить підрядок S (1 ≤ |E|,|S| ≤ 10 000).

Рядок S складається з великих латинських літер. Вираз E складається з великих латинських літер і спеціальних символів: точки ('.'), дужок ('(' і ')'), труби ('|') і зірочок ('*').

Вихідні дані

Виведіть найкоротший рядок T, який відповідає E і містить S як підрядок. Якщо такого рядка не існує, виведіть "No".

Рядок T повинен містити тільки великі латинські літери.

Приклади

Приклад 1

Loading
Loading

Приклад 2

Loading
Loading