def evaluate(expr: str) -> int: expr = expr.replace(" ", "") pos = 0 def number(): nonlocal pos start = pos if pos < len(expr) and expr[pos] in '+-': pos += 1 while pos < len(expr) and expr[pos].isdigit(): pos += 1 return int(expr[start:pos]) def factor(): nonlocal pos if pos < len(expr) and expr[pos] == '(': pos += 1 result = expression() if pos >= len(expr) or expr[pos] != ')': raise ValueError pos += 1 return result return number() def term(): nonlocal pos result = factor() while pos < len(expr) and expr[pos] in '*/': op = expr[pos] pos += 1 if op == '*': result *= factor() else: num = factor() if num == 0: raise ValueError result //= num return result def expression(): nonlocal pos result = term() while pos < len(expr) and expr[pos] in '+-': op = expr[pos] pos += 1 if op == '+': result += term() else: result -= term() return result result = expression() if pos < len(expr): raise ValueError return result expr = input() print(evaluate(expr))