import java.util.*;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        String s=in.nextLine();
        s=s.replace('{','(');
        s=s.replace('}',')');
        s=s.replace('[','(');
        s=s.replace(']',')');
        //System.out.println(s);
        Stack<String> ans=nibolan(s);
        //System.out.println(ans);
        System.out.println(count(ans));
    }
    private static int count(Stack<String> ans){
        Stack<Integer> num=new Stack<>();
        while(!ans.empty()){
            //System.out.println(num);
            String s1=ans.pop();
            if(s1.equals("+")){
                int a1=num.pop();
                int a2=num.pop();
                a1=a1+a2;
                num.push(a1);
            }
            else if(s1.equals("-")){
                int a1=num.pop();
                int a2=num.pop();
                a1=a2-a1;
                num.push(a1);
            }
            else if(s1.equals("*")){
                int a1=num.pop();
                int a2=num.pop();
                a1=a1*a2;
                num.push(a1);
            }
            else if(s1.equals("/")){
                int a1=num.pop();
                int a2=num.pop();
                a1=a2/a1;
                num.push(a1);
            }
            else {
                int temp=0;
                if(s1.charAt(0)=='-'){
                    for(int i=1;i<s1.length();i++){
                        temp=temp*10+(s1.charAt(i)-'0');
                    }
                    temp=-temp;
                }
                else{
                    for(int i=0;i<s1.length();i++){
                        temp=temp*10+(s1.charAt(i)-'0');
                    }
                }
                num.push(temp);
            }
        }
        return num.peek();
    }
    private static Stack<String> nibolan(String s){
        Stack<String> zifu=new Stack<>();
        Stack<String> sum=new Stack<>();
        int l=s.length(),x=0;
        while(x<l){
            char c=s.charAt(x);
            String cs=new String();
            cs+=c;
            if(c>='0'&&c<='9'){
                String mid=new String();
                mid=mid+c;
                x++;
    while(x<l&&s.charAt(x)>='0'&&s.charAt(x)<='9')
                {mid=mid+s.charAt(x);x++;}
                sum.push(mid);
                continue;
            }
         if(cs.equals("-")&&(x==0||s.charAt(x-1)=='(')){
            //x++;
            String mid=new String();
                mid+='-';
               // mid=mid+c;
                x++;
    while(x<l&&s.charAt(x)>='0'&&s.charAt(x)<='9')
                {mid=mid+s.charAt(x);x++;}
                sum.push(mid);
                continue;
         }
if(zifu.empty()||zifu.peek().equals("(")||cs.equals("("))
            {String mid=new String();mid+=c;
                zifu.push(mid);x++;continue;}
            if(cs.equals(")")){
                while(!zifu.peek().equals("(")){
                    sum.push(zifu.pop());
                }
                zifu.pop();
                x++;continue;
            }
            if(priority(cs)>priority(zifu.peek()))
            {zifu.push(cs);x++;continue;}
            else{
                String cs1=zifu.pop();
                sum.push(cs1);
                while(!zifu.empty()){ 
             if(zifu.peek().equals("("))
             {zifu.push(cs);break;}
             if(priority(cs)>priority(zifu.peek()))
             {zifu.push(cs);break;}
             if(!zifu.empty())
             {cs1=zifu.pop();sum.push(cs1);}
                }
                if(zifu.empty())zifu.push(cs);
                x++;continue;
            }

        }
        while(!zifu.empty())
        {sum.push(zifu.pop());}
        while(!sum.empty())
        {zifu.push(sum.pop());}
        return zifu;
    }
    private static int priority(String s){
        if(s.equals("+")||s.equals("-")) return 1;
        if(s.equals("*")||s.equals("/")) return 2;
        System.out.println("priority错误"+s);
        return 0;
    }
}