#include <stdio.h>
#include <string.h>
#include <ctype.h>
char stack[100][10];
int top = -1;
int idx = 0;
char input[100];
void push(const char *s) {
}
void pop() {
top--;
}
void printStack() {
for (int i
= 0; i
<= top
; i
++) printf("%s", stack
[i
]); }
int reduce() {
if (top >= 2 &&
strcmp(stack
[top
-2], "E") == 0 && strcmp(stack
[top
-1], "+") == 0 && strcmp(stack
[top
], "E") == 0) { pop(); pop(); pop();
push("E");
return 1;
}
if (top!=-1 && stack[top][0]>='a'&&stack[top][0]<='z')
{
pop();
push("E");
return 1;
}
if (top >= 2 &&
strcmp(stack
[top
-2], "E") == 0 && strcmp(stack
[top
-1], "*") == 0 && strcmp(stack
[top
], "E") == 0) { pop(); pop(); pop();
push("E");
return 1;
}
if (top >= 2 &&
strcmp(stack
[top
-2], "(") == 0 && strcmp(stack
[top
-1], "E") == 0 && strcmp(stack
[top
], ")") == 0) { pop(); pop(); pop();
push("E");
return 1;
}
return 0;
}
int main() {
fgets(input
, sizeof(input
), stdin
);
while (input[idx]) {
idx++;
continue;
}
char temp[2] = {input[idx], '\0'};
push(temp);
idx++;
printStack();
while (reduce()) {
printStack();
}
}
if (top
== 0 && strcmp(stack
[0], "E") == 0) else
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdHJpbmcuaD4KI2luY2x1ZGUgPGN0eXBlLmg+CgpjaGFyIHN0YWNrWzEwMF1bMTBdOwppbnQgdG9wID0gLTE7CmludCBpZHggPSAwOwpjaGFyIGlucHV0WzEwMF07Cgp2b2lkIHB1c2goY29uc3QgY2hhciAqcykgewogICAgc3RyY3B5KHN0YWNrWysrdG9wXSwgcyk7Cn0KCnZvaWQgcG9wKCkgewogICAgdG9wLS07Cn0KCnZvaWQgcHJpbnRTdGFjaygpIHsKICAgIGZvciAoaW50IGkgPSAwOyBpIDw9IHRvcDsgaSsrKSBwcmludGYoIiVzIiwgc3RhY2tbaV0pOwogICAgcHJpbnRmKCJcbiIpOwp9CgppbnQgcmVkdWNlKCkgewogICAgaWYgKHRvcCA+PSAyICYmCiAgICAgICAgc3RyY21wKHN0YWNrW3RvcC0yXSwgIkUiKSA9PSAwICYmCiAgICAgICAgc3RyY21wKHN0YWNrW3RvcC0xXSwgIisiKSA9PSAwICYmCiAgICAgICAgc3RyY21wKHN0YWNrW3RvcF0sICJFIikgPT0gMCkgewogICAgICAgIHBvcCgpOyBwb3AoKTsgcG9wKCk7CiAgICAgICAgcHVzaCgiRSIpOwogICAgICAgIHJldHVybiAxOwogICAgfQoKICAgIGlmICh0b3AhPS0xICYmIHN0YWNrW3RvcF1bMF0+PSdhJyYmc3RhY2tbdG9wXVswXTw9J3onKQogICAgewogICAgICAgIHBvcCgpOwogICAgICAgIHB1c2goIkUiKTsKICAgICAgICByZXR1cm4gMTsKICAgIH0KCiAgICBpZiAodG9wID49IDIgJiYKICAgICAgICBzdHJjbXAoc3RhY2tbdG9wLTJdLCAiRSIpID09IDAgJiYKICAgICAgICBzdHJjbXAoc3RhY2tbdG9wLTFdLCAiKiIpID09IDAgJiYKICAgICAgICBzdHJjbXAoc3RhY2tbdG9wXSwgIkUiKSA9PSAwKSB7CiAgICAgICAgcG9wKCk7IHBvcCgpOyBwb3AoKTsKICAgICAgICBwdXNoKCJFIik7CiAgICAgICAgcmV0dXJuIDE7CiAgICB9CgogICAgaWYgKHRvcCA+PSAyICYmCiAgICAgICAgc3RyY21wKHN0YWNrW3RvcC0yXSwgIigiKSA9PSAwICYmCiAgICAgICAgc3RyY21wKHN0YWNrW3RvcC0xXSwgIkUiKSA9PSAwICYmCiAgICAgICAgc3RyY21wKHN0YWNrW3RvcF0sICIpIikgPT0gMCkgewogICAgICAgIHBvcCgpOyBwb3AoKTsgcG9wKCk7CiAgICAgICAgcHVzaCgiRSIpOwogICAgICAgIHJldHVybiAxOwogICAgfQoKICAgIHJldHVybiAwOwp9CgppbnQgbWFpbigpIHsKICAgIGZnZXRzKGlucHV0LCBzaXplb2YoaW5wdXQpLCBzdGRpbik7CgogICAgd2hpbGUgKGlucHV0W2lkeF0pIHsKICAgICAgICBpZiAoaXNzcGFjZShpbnB1dFtpZHhdKSkgewogICAgICAgICAgICBpZHgrKzsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgfQoKICAgICAgICBjaGFyIHRlbXBbMl0gPSB7aW5wdXRbaWR4XSwgJ1wwJ307CiAgICAgICAgcHVzaCh0ZW1wKTsKICAgICAgICBpZHgrKzsKCiAgICAgICAgcHJpbnRmKCJTaGlmdDogIik7CiAgICAgICAgcHJpbnRTdGFjaygpOwoKICAgICAgICB3aGlsZSAocmVkdWNlKCkpIHsKICAgICAgICAgICAgcHJpbnRmKCJSZWR1Y2U6ICIpOwogICAgICAgICAgICBwcmludFN0YWNrKCk7CiAgICAgICAgfQogICAgfQoKICAgIGlmICh0b3AgPT0gMCAmJiBzdHJjbXAoc3RhY2tbMF0sICJFIikgPT0gMCkKICAgICAgICBwcmludGYoIlN0cmluZyBBY2NlcHRlZFxuIik7CiAgICBlbHNlCiAgICAgICAgcHJpbnRmKCJTdHJpbmcgUmVqZWN0ZWRcbiIpOwoKICAgIHJldHVybiAwOwp9