#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define MAX 100
void initialize(void);
int isEmpty(void);
int isFull(void);
void  push(int);
int pop(void);
int top;
int stack[MAX];
int main(){
  int a,b;
  char s[100];
  while( scanf("%s", s) != EOF ){
    if ( s[0] == '+' ){
      push(pop()+pop());
    } 
    else if ( s[0] == '-' ){
      a=pop();
      b=pop();
      push(b-a);
    } 
    else if ( s[0] == '*' ){
      push(pop()*pop());
    } 
    else {
      push(atoi(s));
    }
  }
  printf("%d\n",pop());
  return 0;
}
void initialize()
{
  top=0;
}
int isEmpty()
{
  if(top==0)
    return 1;
  else
    return 0;
}
int isFull()
{
  if(top > MAX-1)
    return 1;
  else 
    return 0;
}
void push(int x)
{
  if(isFull()){
    fprintf(stderr,"エラー（オーバーフロー）\n");
    exit(1);
  }
  stack[++top]=x;
}

int pop()
{
  if(isEmpty()){
    fprintf(stderr,"エラー（アンダーフロー）\n");
    exit(2);
  }
  top--;
  return stack[top+1];
}