/*
   逆ポーランド法の式が入力される。
   逆ポーランド法の式を展開して、計算結果を出力。

   演算子は*,+,-の三種類。

   input:
   1 2 + 3 4 - *

   output:
   -3

   スタックに式を入力(push)。演算子が検出されたら、2つの値をpop
   し、スタックに再度入力。
   スタックに最後に残ったものが出力される。
*/

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int top;
int S[200];

void push(int x)
{
   // topを加算してからその位置へ挿入
   S[++top] = x;
}

int pop() 
{
   top--;
   // topが指していた要素を返す
   return S[top+1];
}


int main()
{
   int top = 0;
   int a,b;
   char s[8];

   while (scanf("%s", s) != EOF) {
      if (s[0] == '+') {
         a = pop();
         b = pop();
         push(a + b);
      } else if (s[0] == '*') {
         a = pop();
         b = pop();
         push(a * b);
      } else if (s[0] == '-') {
         a = pop();
         b = pop();
         push(b - a);
      } else {
         push(atoi(s));
      }
   }

   printf("%d\n", pop());
   return 0;
}

