#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define MAX 101
/*グローバル変数*/
int top;
int a[MAX];

/*スタックが空かどうか*/
int isEmpty(int top) {
	if (top == 0) {
		return 1;
	}
	else {
		return 0;
	}
}
/*スタックが満杯かどうか*/
int isFull(int top) {
	if (top >= MAX - 1) {
		return 1;
	}
	else {
		return 0;
	}
}
/*配列に数字を入れる*/
void push(int ope) {
	if (!(isFull(top))) {
		a[top] = ope;
		top++;
	}
}
/*配列から数字を取り出す*/
int pop() {
	if (!(isEmpty(top))) {
		top--;
		return a[top];
	}
}

int main() {
	int x, y;	/*計算用変数*/
	char s[400];	/*数式*/
	top = 0;
	int i = 0;

	scanf("%[^\n]", s);

	while ( s[i] != '\0') {
		/*足し算*/
		if (s[i] == '+') {
			y = pop();
			x = pop();
			x = x + y;
			push(x);
		}
		/*引き算*/
		else if (s[i] == '-') {
			y = pop();
			x = pop();
			x = x - y;
			push(x);
		}
		/*掛け算*/
		else if (s[i] == '*') {
			y = pop();
			x = pop();
			x = x * y;
			push(x);
		}
		/*数字を配列に挿入*/
		else if(s[i] != ' '){
			x = 0;

			while (1) {
				if (s[i] == ' ') {
					break;
				}
				else {
					x = x * 10 + s[i] - 48;
					i++;
				}
			}
			push(x);
		}
		i++;
	}
	/*出力*/
	printf("%d\n", a[0]);
	return 0;
}

