Рівняння
Програміст Вова давно цікавиться різлними задачами з рядками. У цій задачі будемо вважати, що рядок - довільна послідовність ASCII-символів з кодами від 33 до 126.
Нещодавно Вова взнав про операції з рядками:
додавання рядків, позначається символом "+". Наприклад, Doctor+Who=DoctorWho.
множення рядків, позначається символом "*". Якщо S=A*B, то S=a_1+B+a_2+B+...+a_n+B, де a_i - i-ий символ рядка A (нумерація симовлів рядка починається з 1). Наприклад, aca*x=axcxax.
Після цього Вова подумав: а чому б не придумати рівняння, де невідомою величиною буде рядок. Після цього Вова став розв'язувати придумані ним рівняння.
Перейдемо до формальних визначень. Назвемо рівнянням послідовність a_1°a_2°...°a_n=b, де a_i - довільний невідомий рядок (позначається "?"), або якийсь певний непорожній рядок (записується символами рядка без яких би то не було додаткових символів або обмежувачів), b - якийсь певний непорожній рядок, а на місці значків ° можуть стояти знаки операцій додавання або множення (причому у різних місцях можуть стояти різні знаки). Усі дії виконуються строго зліво направо. Дужки не впливають на приорітет операцій. Гарантиується, що існує i, що a_i="?". Символи "?", "+", "*", "=" не використовуються як символи відомих рядків. Також усім a_i та b відповідають непорожні рядки.
Потрібно розв'язати рівняння подібного вигляду, якщо відомо, що існує непорожній розв'язок.
Вхідні дані
У першому рядку знаходиться рядок S, який задає рівняння. Кількість операцій не перевищує 200000, довжина рядка S не більше ніж 300000 символів. У рівнянні завжди присутній хоча б один знак "?".
Вихідні дані
Надрукуйте значення невідомого рядка.