import java.util.*;

public class Main {
    //20*{1+2*[-4/(8-6)+7]}+3
    public static void main(String[] args) {
        Scanner sc =new Scanner(System.in);
        String sb = sc.nextLine();
        System.out.println(getCountResult(sb));
    }
    private static int pos=0;

    private static int getCountResult(String sb) {
        //S数据进栈必须配合opt
        Stack<Integer> stackTemp = new Stack<>();
        Integer temp =0;
        char opt='+';
        //栈帧 就是happens-before opt记录了上个世界的事情啊
        while (pos<sb.length()){
            if('['==sb.charAt(pos)||'{'==sb.charAt(pos)||'('==sb.charAt(pos)){
                pos++;
                temp=getCountResult(sb);
            }

            //获取数字
            while (pos<sb.length()&&Character.isDigit(sb.charAt(pos))){
                temp=temp*10+sb.charAt(pos)-'0';
                pos++;
            }
            //数字取完就只剩下运算符了
            if (opt=='+') stackTemp.push(temp);
            if (opt=='-') stackTemp.push(-temp);
            if (opt=='*') stackTemp.push(stackTemp.pop()*temp);
            if (opt=='/') stackTemp.push(stackTemp.pop()/temp);
            temp=0;
            if (pos<sb.length()&&(sb.charAt(pos)==')'||sb.charAt(pos)==']'||sb.charAt(pos)=='}')){
                pos++;
                break;
            }else if (pos<sb.length()){
                opt=sb.charAt(pos);
                pos++;
            }
        }
        int sum =0;
        while (!stackTemp.isEmpty()){
            sum+=stackTemp.pop();
        }
        return sum;
    }
}