#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 返回表达式的值
# @param s string字符串 待计算的表达式
# @return int整型
#
class Solution:
    def solve(self , s: str) -> int:
        # write code here
        # 实施运算的操作函数
        def apply_op(a,b,op):
            if op == "+":return a+b
            if op == "-":return a-b
            if op == "*":return a*b
        # 运算符优先级赋值
        def procal(op):
            if op in ("+","-"):return 1
            if op == "*": return 2
            return 0
        # 设置两个栈,分别为数值栈和运算符栈
        num_stack = []
        op_stack = []
        # 用于累积总处理的字符数值,包括数字和运算符
        i = 0
        while i < len(s):
            # 判断该字符是否为数字
            if s[i].isdigit():
                num = 0
                # 对于数字超过1位数的计算数进行累加起来,整合成真正需要计算的数
                while i < len(s) and s[i].isdigit():
                    num = num *10 + int(s[i])
                    i += 1
                # 将需要计算的数字添加到数值栈
                num_stack.append(num)
            # 对于优先级最高的括号,进行匹配和优先运算
            elif s[i] == "(":
                op_stack.append(s[i])
                i += 1
            elif s[i] == ")":
                while op_stack[-1] != "(":
                    num1 = int(num_stack.pop())
                    num2 = num_stack.pop()
                    op = op_stack.pop()
                    num_stack.append(apply_op(num2,num1,op))
                op_stack.pop()
                i += 1
            # 按照优先级,优先级更高的先进行运算
            elif s[i] in ("+","-","*"):
                while (op_stack and procal(op_stack[-1])>=procal(s[i])):
                    num1 = num_stack.pop()
                    num2 = num_stack.pop()
                    op = op_stack.pop()
                    num_stack.append(apply_op(num2,num1,op))
                op_stack.append(s[i])
                i += 1
            # 不属于上述的情况,就字符会被压入
            else:
                i += 1
        # 最后把字符串s都遍历完了,最后还没有进行运算的,循环进行运算,最后结果放在数字栈内
        while op_stack:
            num1 = num_stack.pop()
            num2 = num_stack.pop()
            op = op_stack.pop()
            num_stack.append(apply_op(num2,num1,op))
        results = int(num_stack[0])
        return results
if __name__ == "__main__":
    s = str(input().strip().replace('"',''))
    print(Solution().solve(s))