Mirko was bored at his chemistry class, so he played Bomb Switcher on his cell phone. Unfortunately, he was spotted and was given a ridiculously heavy assignment for homework. For a given valid math expression with brackets, he must find all different expressions that can be obtained by removing valid pairs of brackets from the original expression. Two expressions are different if there is a character at which they differ.
For example, given , one can get , , and . and can't be reached, since we would have to remove pairs of brackets that are not valid. More than one pairs of brackets can surround the same part of the expression.
Input Specification
The first and only line of input contains one valid mathematical expression composed of nonnegative integers, basic arithmetic operations denoted with characters +
, *
, -
and /
, and brackets (
and )
.
Given expression won't have more than characters, and will have at least one, and no more than pairs of brackets. Each expression is guaranteed to have at least one pair of brackets.
Output Specification
Output all different expressions that can be obtained by removing valid pairs of brackets, sorted lexicographically.
Sample Input 1
(0/(0))
Sample Output 1
(0/0)
0/(0)
0/0
Sample Input 2
(2+(2*2)+2)
Sample Output 2
(2+2*2+2)
2+(2*2)+2
2+2*2+2
Sample Input 3
(1+(2*(3+4)))
Sample Output 3
(1+(2*3+4))
(1+2*(3+4))
(1+2*3+4)
1+(2*(3+4))
1+(2*3+4)
1+2*(3+4)
1+2*3+4
Comments