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

#define MAX_LENGTH 200

long stack[MAX_LENGTH];
int top = 0;

int isFull() {
  if (top == 199) {
    // printf("???????????§??????\n");
    return 1;
  } else {
    // printf("???????????§?????????????????????\n");
    return 0;
  }
}

int isEmpty() {
  if (top == 0) {
    // printf("?????§??????\n");
    return 1;
  } else {
    // printf("?????§?????????????????????\n");
    return 0;
  }
}

void push(long x) {
  if (!isFull()){
    stack[top + 1] = x;
    top++;
    // printf("%ld??????????????\???????????????\n", x);
  } else {
    // printf("???????????\??§???????????????\n");
  }
}

long pop() {
  if (!isEmpty()){
    top--;
    // printf("%ld???????????????????????????\n", stack[top + 1]);
    return stack[top + 1];
  } else {
    return 0;
    // printf("???????????§???????????????\n");
  }
}

int main(void) {
  char temp[10];
  int i, a, b;

  while(scanf("%s", temp) != EOF) {

    if (temp[0] == '+') {
      a = pop();
      b = pop();
      push(a + b);
      // printf("+?????\?????????????????????\n");
    } else if (temp[0] == '-') {
      a = pop();
      b = pop();
      push(b - a);
      // printf("-?????\?????????????????????\n");
    } else if (temp[0] =='*') {
      a = pop();
      b = pop();
      // printf("*?????\?????????????????????\n");
      push(a * b);
    } else if (temp[0] == EOF){
      // printf("????????§??????\n");
      break;
    } else {
      push(atol(temp));
      // printf("??´??°%ld?????\?????????????????????\n", atol(temp));
    }
  }

  printf("%ld\n", pop());

  return 0;
}