#include<stdio.h>
#include<stdlib.h>
#define OK 1
#define Error 0
typedef int Status;
//栈
typedef struct StackNode
{
int data;
struct StackNode *next;
}StackNode,*LinkStack;
Status InistStack(LinkStack &S)
{
S=NULL;
return OK;
}
Status Push(LinkStack &S,int e)
{
LinkStack p;
p=new StackNode;
p->data=e;
p->next=S;
S=p;
return OK;
}
Status Pop(LinkStack &S,int &e)
{
LinkStack p;
if(S==NULL)
return Error;
e=S->data;
p=S;
S=S->next;
free(p);
return OK;
}
Status GetTop(LinkStack S)
{
if(S!=NULL)
return S->data;
return Error;
}
int main()
{
char ass[1000];
while(gets(ass)!=NULL)
{
int i,num=0;
int flag=0;
int left,right;
LinkStack Q;
InistStack(Q);
for(i=0;;i++)
{
if(ass[i]=='@')
break;
else if(ass[i]>='0'&&ass[i]<='9')
{
flag=1;
num=num*10+ass[i]-'0';
}
else
{
if(flag==1)
{
Push(Q,num);
num=0;
}
if(ass[i]==' ')
{
flag=0;
continue;
}
Pop(Q,right);
Pop(Q,left);
switch(ass[i])
{
case '+':
Push(Q,left+right);
break;
case '-':
Push(Q,left-right);
break;
case '/':
Push(Q,left/right);
break;
case '*':
Push(Q,left*right);
break;
}
flag=0;
}
}
Pop(Q,i);
printf("%d",i);
}
return 0;
}