#define _CRT_SECURE_NO_WARNINGS 1
#include <bits/stdc++.h>
using namespace std;

int youxianji(char c) {//优先级
    
    if (c == '#')return 0;
    else if (c == '$')return 1;
    else if (c == '+' || c == '-')return 2;
    else if (c == '*' || c == '/')return 3;
    return 0;//必须返回一个默认,否则oj会报错
}

double getNumber(string str, int& index) {//获取数字
    double number = 0;
    while (isdigit(str[index])) {
        number = number * 10 + str[index] - '0';
        index++;
    }
    return number;
}

double cauculate(double x, double y, char op) {//计算
    double result = 0;
    if (op == '+')result = x + y;
    else if (op == '-')result = x - y;
    else if (op == '*')result = x * y;
    else if (op == '/')result = x / y;
    return result;
}

int main() {
    string str;
    while (cin >> str) {
        int index = 0;
        stack<char>oper;
        stack<double>data;
        str = str + '$';
        oper.push('#');
        while (index < str.size()) {

            if (isdigit(str[index])) {
                data.push(getNumber(str, index));
            } else if (youxianji(oper.top()) < youxianji(str[index])) {
                oper.push(str[index]);
                index++;
            }

            else {
                double y = data.top();
                data.pop();
                double x = data.top();
                data.pop();
                char op = oper.top();
                oper.pop();
                double result = cauculate(x, y, op);
                data.push(result);

            }

        }
        int B=data.top();//强制类型转换
        printf("%d\n", B);
    }
    return 0;
}