#include <bits/stdc++.h>
using namespace std;
int main() {
char str[1000];
map<char, int> priority = {
{'\0', 0},
{'+', 1},
{'-', 1},
{'*', 2},
{'/', 2}
};
while (scanf("%s", str) != EOF) {
string numStr = "";
stack<double> numStack;
stack<char> opStack;
for (int i = 0;; ++i) {
if (str[i] >= '0' && str[i] <= '9') {
numStr.push_back(str[i]);
} else {
double num = stod(numStr);
numStr = "";
numStack.push(num);
while (!opStack.empty() &&
priority[str[i]] <= priority[opStack.top()]) {
double rhs = numStack.top();
numStack.pop();
double lhs = numStack.top();
numStack.pop();
char curOp = opStack.top();
opStack.pop();
if (curOp == '+') {
numStack.push(lhs + rhs);
} else if (curOp == '-') {
numStack.push(lhs - rhs);
} else if (curOp == '*') {
numStack.push(lhs * rhs);
} else if (curOp == '/') {
numStack.push(lhs / rhs);
}
}
//栈为空或者新运算符优先级更高
if (str[i] == '\0') {
printf("%d\n", (int) numStack.top());
break;
} else {
opStack.push(str[i]);
}
}
}
}
return 0;
}