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

void push(int);
int pop(void);

int top,S[1000];

int main(){
  int x;
  char s[100];
  int n,m;

  top = 0;

  while(scanf("%s",s) != EOF ){
    if ( s[0] == '+' ){
      n = pop();
      m = pop();
      push(n+m); 

    } else if ( s[0] == '-' ){
      m = pop();
      n = pop();
      push(n-m);
     
    } else if ( s[0] == '*' ){
      n = pop();
      m = pop();
      push(n*m);

    } else {//オペランド（数字）であればスタックに値を積む
      x = atoi(s);
      push(x);
    }
  }
  printf("%d\n",pop());
  
  return 0;
}

void push(int x){//top を 1 つ増やし、S[top] に x を代入
  top++;
  S[top] = x;
}

int pop(void){//S[top] の値を返し、top を１つ減らす
  top--;
  return S[top+1];
}


