#include <stdio.h>
#define SIZE 1000000000
#define MAX 100

int stack[SIZE];
int size = 0;

int pop()
{
  if (size <= 0) return 0;
  return stack[--size];
}

int push(int a)
{
  stack[size++] = a;
}

int is_digit(char *s)
{
  if (*s == '+' || *s =='-') {
    s++;
    if (*s >= '0' && *s <= '9') return 1;
    return 0;
  }

  if (*s >= '0' && *s <= '9') return 1;
  return 0;
}

int get_number(char *s)
{
  int sign = 0, n = 0;

  if (*s == '+') {
    s++;
  } else if (*s == '-') {
    sign = 1;
    s++;
  }

  while (*s >= '0' && *s <= '9') {
    n = n * 10 + (*s - '0');
    s++;
  }

  if (sign) return -n;
  return n;
}int calc(char *s)
{
  int a, b, n;

  while (*s) {

    if (is_digit(s)) {
      n = get_number(s);
      push(n);
      while (*s == '-' || *s == '+') {
        s++;
      }
      while (n) {
        n /= 10;
        s++;
      }

    } else {
      switch (*s) {
      case '+':
        a = pop();
        b = pop();
        push(b+a);
        break;
      case '-':
        a = pop();
        b = pop();
        push(b-a);
        break;
      case '*':
        a = pop();
        b = pop();
        push(b*a);
        break;   }
      s++;
    }
  }
  return pop();
}
int main()
{
  char s[MAX];
  scanf("%[^\n]*s", s);
  printf("%d\n",calc(s));
  return 0;
}