# Returns result and index def para(s: str, i: int) -> tuple[int, int]: a, b = 0, 0 operator = '+' c = s[i] while c != ')': c = s[i] if c == '(': i += 1 b, i = para(s, i) match operator: case '+': a = a + b case '-': a = a - b case '*': a = a * b elif c.isdigit(): b = int(c) match operator: case '+': a = a + b case '-': a = a - b case '*': a = a * b i += 1 else: operator = c i += 1 return (a, i) def main(): s: str = input() # Wish I could just use eval() but it uses pemdas a, b = 0, 0 operator = '+' i = 0 while i < len(s): c = s[i] if c == '(': i += 1 b, i = para(s, i) match operator: case '+': a = a + b case '-': a = a - b case '*': a = a * b elif c.isdigit(): b = int(c) match operator: case '+': a = a + b case '-': a = a - b case '*': a = a * b i += 1 else: operator = c i += 1 print(a) if __name__ == '__main__': main()