Скобки
Для компьютера нет разницы между выражениями (((x)+(y))(t)) и (x+y)t; но для человека есть - последнее легче прочитать. Когда для человека автоматически генерируются выражения, то для их простейшего восприятия они должны содержать наименьшее количество скобок. Считаем, что выражения содержат только две операции: сложение (+) и умножение (соприкосновение), и эти операции действуют только на переменные нижнего регистра. Рассмотрим грамматику для выражения E:
E : P | P '+' EP : F | F PF : V | '(' E ')'V : 'a' | 'b' | .. | 'z'
Операторы сложения (+, как например в x+y) и умножения (соприкосновение, как например в xy) ассоциативны: x+(y+z)=(x+y)+z=x+y+z и x(yz)=(xy)z=xyz. Свойства коммутативности и дистрибутивности на эти операторы не накладываются. Скобки имеют наивысший приоритет, далее следует умножение, а затем сложение.
Входные данные
Состоит из нескольких тестов. Каждый тест содержится в одной строке - это выражение, удовлетворяющее грамматике. Каждое выражение содержит не более 1000 символов.
Выходные данные
Для каждого теста в отдельной строке вывести это же самое выражение, в котором удалены все ненужные скобки.