//土尔逊Torson 编写于2023/5/03
#define _CRT_SECURE_NO_WARNINGS
#include <cstdio>
#include <stack>
#include <string>
#include <stdlib.h>
#include <iostream>
#include <map>

using namespace std;

int main() {
	string tmp05701;
	map<char, int> priority = {
		{ '$',0 },
		{ '+',1 },{ '-',1 },
		{ '*',2 },{ '/',2 }
	};

	while (getline(cin, tmp05701)) {
		stack<char> opr05701;
		stack<double> num05701;
		string process = tmp05701;
		string num;
		//printf("%s %d\n", tmp05701.c_str(),tmp05701.size());
		//process.pop_back();
		if (process == "0") {
			break;
		}
		process.push_back('$');
		

		for (unsigned i = 0; i < process.size(); ++i) {
			if (process[i] >= '0' && process[i] <= '9') {
				num.push_back(process[i]);
			}
			else {
				// + - * / $
				if (num != "") {
					num05701.push(stod(num));//stod --> string to double
					num = "";
				}

				if (process[i] == '$') {
					if (num != "") {
						num05701.push(stod(num));//stod --> string to double
						num = "";
					}
				}

				while (!opr05701.empty() && priority[opr05701.top()] >= priority[process[i]]) {
					// 新来的运算符的优先级不高于栈顶的优先级
					char oper = opr05701.top();
					opr05701.pop();
					double rhs = num05701.top();
					num05701.pop();
					double lhs = num05701.top();
					num05701.pop();

					switch (oper) {
					case '+':
						num05701.push(lhs + rhs);
						break;
					case '-':
						num05701.push(lhs - rhs);
						break;
					case '*':
						num05701.push(lhs * rhs);
						break;
					case '/':
						num05701.push(lhs / rhs);
						break;
					}
				}
				// 所有比expr[i]优先级更高的运算符都计算过了
				opr05701.push(process[i]);
			}
		}
		printf("%.0lf\n", num05701.top());
	}
	system("pause");
	return EXIT_SUCCESS;
}
// 64 位输出请用 printf("%lld")