#include <stdio.h>
#include <string.h>
#include <assert.h>
#include <ctype.h>

#define MAX 100

typedef struct{
  int data[MAX],top;
} Stack;

void init(Stack*);
int isEmpty(Stack*);
void push(Stack*,int);
int pop(Stack*);
int calc(int,int,char);

int main(){
  int a,b;
  char str[7];
  Stack stack;
  init(&stack);
  
  while(scanf("%s",str) != EOF){
    if(isdigit(str[0])){
      a = atoi(str);
      push(&stack,a);
    }else{
      b = pop(&stack);
      a = pop(&stack);
      push(&stack,calc(a,b,str[0]));
    }
  }
  printf("%d\n",pop(&stack));
  return 0;
}

void init(Stack *s){
  s->top = 0;
}

int isEmpty(Stack *s){
  return (s->top == 0);
}

void push(Stack *s,int value){
  if(s->top >= MAX){
    assert(0);
  }
  s->data[s->top++] = value;
}

int pop(Stack *s){
  if(isEmpty(s)){
    assert(0);
  }
  return s->data[--s->top];
}

int calc(int a,int b,char op){
  switch(op){
  case '+':
    return a + b;
  case '-':
    return a - b;
  case '*':
    return a * b;
  case '/':
    if(b == 0){
      assert(0);
    }
    return a / b;
  default:
    assert(0);
  }
}