#include <fstream>
#include <stack>
using namespace std;
ifstream cin("evaluare.in");
ofstream cout("evaluare.out");
int factor(int &i, string &str)
{
int a=0;
while(i<str.size() and str[i]>='0' and str[i]<='9')
{
a=a*10+str[i]-'0';
i++;
}
i--;
return a;
}
int degree(char c)
{
if(c=='+' or c=='-')
return 1;
else if(c=='/' or c=='*')
return 2;
return 0;
}
int calculate(int a, int b, char c)
{
if(c=='+')
return a+b;
else if(c=='-')
return a-b;
else if(c=='*')
return a*b;
else if(c=='/')
return a/b;
}
int evaluate(string str)
{
stack<int>val;
stack<char>op;
for(int i=0;i<str.size();i++)
{
if(str[i]==' ')
continue;
else if(str[i]=='(')
op.push(str[i]);
else if(str[i]==')')
{
while(op.size()>0 and op.top()!='(')
{
int val2=val.top();
val.pop();
int val1=val.top();
val.pop();
char c=op.top();
op.pop();
val.push(calculate(val1,val2,c));
}
op.pop();
}
else if(str[i]>='0' and str[i]<='9')
{
val.push(factor(i,str));
}
else
{
while(degree(str[i])!=0 and op.size()>0 and degree(str[i])<=degree(op.top()))
{
int val2=val.top();
val.pop();
int val1=val.top();
val.pop();
char c=op.top();
op.pop();
val.push(calculate(val1,val2,c));
}
op.push(str[i]);
}
}
while(op.size()>0)
{
int val2=val.top();
val.pop();
int val1=val.top();
val.pop();
char c=op.top();
op.pop();
val.push(calculate(val1,val2,c));
}
int ans=val.top();
val.pop();
return ans;
}
int main()
{
string str;
getline(cin,str);
cout<<evaluate(str);
return 0;
}