#include<stdio.h>
#include<stdlib.h>
#include<string.h>
// #define DEBUG
struct Node;
typedef struct Node *point;
typedef point Stack;
struct Node
{
int num;
point next;
} ;
Stack CreatStack();
void Push(int,Stack);
void Pop(Stack);
void MakeEmpty(Stack);
int IsEmpty(Stack);
int Top(Stack);
int main()
{
char cha;
int tmpNum1,tmpNum2;
Stack s=CreatStack();
while(scanf("%c",&cha)!=EOF)
{
if(cha=='\n') {printf("%d\n",Top(s)); MakeEmpty(s); continue;}
if(cha>47&&cha<58)
Push(cha%48,s);
else
{
switch (cha)
{
case '+': tmpNum1=Top(s);
Pop(s);
tmpNum2=Top(s);
Pop(s);
Push(tmpNum2+tmpNum1,s);
#ifdef DEBUG
printf("%d\n",tmpNum2+tmpNum1);
#endif
break;
case '-': tmpNum1=Top(s);
Pop(s);
tmpNum2=Top(s);
Pop(s);
Push(tmpNum2-tmpNum1,s);
#ifdef DEBUG
printf("%d\n",tmpNum2-tmpNum1);
#endif
break;
case '*': tmpNum1=Top(s);
Pop(s);
tmpNum2=Top(s);
Pop(s);
Push(tmpNum2*tmpNum1,s);
#ifdef DEBUG
printf("%d\n",tmpNum2*tmpNum1);
#endif
break;
case '/': tmpNum1=Top(s);
Pop(s);
tmpNum2=Top(s);
Pop(s);
Push(tmpNum2/tmpNum1,s);
#ifdef DEBUG
printf("%d\n",tmpNum2/tmpNum1);
#endif
break;
}
}
}
system("pause");
return 0;
}