import std.stdio, std.string, std.array, std.conv;

struct Stack {
    int[] x;

    void push(int y) {
        x ~= y;
    }

    int pop() {
        int result = x[$-1];
        --x.length;
        return result;
    }
}

void main() {
    Stack s;
    string[] c = readln.chomp.split.to!(string[]);
    int a, b;
    foreach (x; c) {
        if (x == "+") {
            a = s.pop;
            b = s.pop;
            s.push(b+a);
        } else if (x == "-") {
            a = s.pop;
            b = s.pop;
            s.push(b-a);
        } else if (x == "*") {
            a = s.pop;
            b = s.pop;
            s.push(b*a);
        } else {
            s.push(x.to!int);
        }
    }
    s.pop.writeln;
}
