#include<iostream> #include<cstdio> #include<stack> #include<string> using namespace std; int GetOrder(char x){ if(x=='#'){ return 1; } else if(x=='$'){ return 2; } else if(x=='+'||x=='-'){ return 3; } else{ return 4; } } double GetNumber(string str,int &i){ int number=0; while(str[i]>='0'&&str[i]<='9'){ number=number*10+str[i]-'0'; ++i; } return number; } double Calculate(double x,double y,char op){ if(op=='+'){ return x+y; } else if(op=='-'){ return x-y; } else if(op=='*'){ return x*y; } else{ return x/y; } } using namespace std; int main(){ string str; stack<double> number; stack<char> operate; while(getline(cin,str)){ while(!number.empty()){ number.pop(); } while(!operate.empty()){ operate.pop(); } operate.push('#'); str+="$"; int i=0; while(i<str.size()){ if(str[i]>='0'&&str[i]<='9'){ number.push(GetNumber(str, i)); } else{ if(GetOrder(str[i])>GetOrder(operate.top())){ operate.push(str[i]); ++i; } else{ double y=number.top(); number.pop(); double x=number.top(); number.pop(); number.push(Calculate(x, y, operate.top())); operate.pop(); } } } printf("%.0f\n",number.top()); } return 0; }