#include <iostream>
#include<algorithm>
#include<vector>
#include<map>
#include<string>
#include<cstring>
#include<queue>
#include<stack>
using namespace std;
map<char, int> priority{
	{'\0',0},
	{'+',1},{'-',1},
	{'*',2},{'/',2}
};
int main() {
	char arr[1000];
	while (cin >> arr) {
		stack<char> op;
		stack<double> sdo;
		string num = " ";
		for (int i = 0;; i++) {
			if (arr[i] >= '0' && arr[i] <= '9') {
				num.push_back(arr[i]);
			}
			else {
				double number = stod(num);
				sdo.push(number);
				num = " ";
				//输入的为符号;输入优先级高,则直接放入
				while (!op.empty() &&
					priority[arr[i]] <= priority[op.top()])
				{
					double lhs = sdo.top();
					sdo.pop();
					double rhs = sdo.top();
					sdo.pop();
					double res;
					if (op.top() == '+') {
						res = rhs + lhs;
					}
					if (op.top() == '-') {
						res = rhs - lhs;
					}
					if (op.top() == '*') {
						res = rhs * lhs;
					}
					if (op.top() == '/') {
						res = rhs / lhs;
					}
					op.pop();
					sdo.push(res);

				}
				if (arr[i] == '\0') {
					printf("%d\n", (int)sdo.top());
					break;
				}
				else {
					op.push(arr[i]);
				}
			}
		}

	}

}