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