package main
 
import (
    "fmt"
    "strconv"
)
 
type node struct {
    NType byte // 类型 0 数字 别的符号
    Val int //
}
 
func main() {
    var s string
    fmt.Scanln(&s)
 
    var data []node
    var num []byte
    for i := 0; i < len(s); i++ { // 先把数字(包括负数)、符号、括号 解析出来
        if s[i] == '-' && (i==0 || (i>0 && s[i-1] == '(') ) {
            num = append(num, '-') // 负数的情况,暂存负号
            continue
        } else if '0' <= s[i] && s[i] <= '9' {
            num = append(num, s[i]) // 数字的情况,暂存数字
            continue
        }
 
        if len(num) > 0 { // 各种符号的情况
            data = append(data, node{0, bsToNum(num)}) // 将数字解析出来
            num = []byte{}
        }
 
        if s[i] == ')' { // 遇到一堆完整的括号了,先计算这个括号里面的额值,然后替换表达式
            j := len(data) - 2 // 找到最近的左括号 来做计算
            for ; data[j].NType != '('; j-- {}
             
            data[j] = node{0, calc(data[j+1:])}
            data = data[:j+1]
        } else {
            data = append(data, node{s[i], 0})
        }
    }
 
    if len(num) > 0 {
        data = append(data, node{0, bsToNum(num)})
    }
 
    fmt.Println(calc(data))
}
 
func calc(data []node) int { // 无括号表达式的计算
    var afterMulAndDivide []node
    for i:=0;i<len(data); { // 先乘除
        if data[i].NType == '*' {
            afterMulAndDivide[len(afterMulAndDivide)-1].Val *= data[i+1].Val
            i += 2
        } else if data[i].NType == '/' {
            afterMulAndDivide[len(afterMulAndDivide)-1].Val /= data[i+1].Val
            i += 2
        } else {
            afterMulAndDivide = append(afterMulAndDivide, data[i])
            i++
        }
    }
     
    result := afterMulAndDivide[0].Val
    for i := 1; i < len(afterMulAndDivide); { // 后加减
        if afterMulAndDivide[i].NType == '+' {
            result += afterMulAndDivide[i+1].Val
        } else if afterMulAndDivide[i].NType == '-' {
            result -= afterMulAndDivide[i+1].Val
        }
        i += 2
    }
     
    return result
}
 
func bsToNum(bs []byte) int {
    num, _ := strconv.Atoi(string(bs))
    return num
}