#include<iostream>#include<unordered_map>#include<stack>usingnamespace std;
stack<int> num;
stack<char> op;voideval(){auto b = num.top(); num.pop();auto a = num.top(); num.pop();auto c = op.top(); op.pop();int x =0;if(c =='-') x = a - b;elseif(c =='+') x = a + b;elseif(c =='*') x = a * b;else x = a / b;
num.push(x);}intmain(){
string s;
cin >> s;
unordered_map<char,int> pr{{'-',1},{'+',1},{'*',2},{'/',2}};for(int i =0; i < s.size(); i ++){if(isdigit(s[i])){int j = i, x =0;while(j < s.size()&&isdigit(s[j]))
x = x *10+ s[j ++]-'0';
i = j -1;
num.push(x);}elseif(s[i]=='(') op.push(s[i]);elseif(s[i]==')'){while(op.top()!='(')eval();
op.pop();}else{while(op.size()&& op.top()!='('&& pr[op.top()]>= pr[s[i]])eval();
op.push(s[i]);}}while(op.size())eval();
cout << num.top()<< endl;return0;}