#include <stdio.h>
#include <stdlib.h>
#define MAXN 2000

// ノードを表す構造体
struct Node {
  int data ;
  struct Node * next ;
} ;

typedef struct Node Node ;

// 新しいノードのメモリを確保する
Node *create_node(int new_data) {
  Node *new_node = (Node *) malloc(sizeof(Node));
  if (!new_node) {
    fprintf(stderr, "could not allocate a node.\n");
    exit(1);
  }
  new_node->data = new_data;
  new_node->next = NULL;
  return new_node;
}

// リストのメモリを解放する
void clear_list(Node * head) {
  while (head) {
    Node * target = head ;
    head = head->next ;
    free(target) ;
  }
}

// リストの先頭へ新しいノードを追加する
// リストの先頭のポインタを差し替えるため、リストの先頭へのポインタへのポインタを渡す
void push_front(Node **head, int new_data) {
  Node *new_node = create_node(new_data) ;
  new_node->next = *head;
  *head = new_node;
}

//リストの先頭からノードを削除する
int pop_front(Node **head){
  Node *tmp = *head;
  int c = (*head)->data;
  *head = (*head)->next;
  free(tmp);
  return c;
}

// リストの要素を先頭から順に出力する
void print_list(const Node * head) {
  while(head) {
    printf("| %d |-> ", head->data);
    head = head->next;
  }
  printf("NULL\n");
}

int main(void) {

  Node * top = NULL ;
  int data ;

  char s[MAXN];
  fgets(s, MAXN, stdin);
  //printf("%s\n", s);

  int c,i = 0, f = 1, x = 0, tmp;
  while((c = s[i++]) != '\n' && c != '\0'){
    switch(c){
    case '+':
      push_front(&top, pop_front(&top) + pop_front(&top));
      f = 0;
      break;
    case '*':
      push_front(&top, pop_front(&top) * pop_front(&top));
      f = 0;
      break;
    case '-':
      tmp = pop_front(&top);
      push_front(&top, pop_front(&top) - tmp);
      f = 0;
      break;
    case(' '):
      if(f){
	push_front(&top, x);
	x = 0;
      }
      break;
    default:
      x = 10 * x + c - '0';
      f = 1;
      break;
    }
  }

  printf("%d\n", pop_front(&top));
  
  /*
  for (size_t i = 0 ; i < size ; ++i) {
    scanf("%d", &data) ;
    push_front(&head, data) ;
  }

  print_list(head) ;

  pop_front(&head);
  print_list(head);

  push_back(head, 10);
  print_list(head);

  pop_back(&head);
  print_list(head);
  */
  
  clear_list(top) ;

  return 0 ;
}

