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

#define MAX 1000

int S[MAX];
int top;

void initialize(void);
int isEmpty(void);
int isFull(void);
void push(int);
int pop(void);

int main()
{
  char array[100];
  int n1,n2,x;

  /* 初期化 */
  initialize();

  /* 入力 */
  while(scanf("%s",array) != EOF){
    
    if (array[0] == '+'){
      n1 = pop();
      n2 = pop();
      push(n2 + n1);
    }

    else if(array[0] == '-'){
      n1 = pop();
      n2 = pop();
      push(n2 - n1);
    }

    else if(array[0] == '*'){
      n1 = pop();
      n2 = pop();
      push(n2 * n1);
    }
    
    else {
      x = atoi(array);
      push(x);
    }
  }

  printf("%d\n",S[1]);

  return 0;
}

void initialize(void)
{
  top = 0;
}

int isEmpty(void)
{
  /* top == 0なら1を返す */
  if(top == 0) return 1;
  return 0;
}

int isFull(void)
{
  /* top >= MAX - 1なら1を返す */
  if(top >= MAX - 1) return 1;
  return 0;
}

void push(int x)
{
  if(isFull() == 1){
    fprintf(stderr,"オーバーフロー\n");
    exit(1);
  }

  top++;
  S[top] = x;
}

int pop(void)
{
  if(isEmpty() == 1){
    fprintf(stderr,"アンダーフロー\n");
    exit(1);
  }

  top--;
  return S[top+1];
}