#include <stdio.h>
#include <stdlib.h>
#include <string.h>
unsigned char prior[7][7]={
{'>','>','<','<','<','>','>'},
{'>','>','<','<','<','>','>'},
{'>','>','>','>','<','>','>'},
{'>','>','>','>','<','>','>'},
{'<','<','<','<','<','=',' '},
{'>','>','>','>',' ','>','>'},
{'<','<','<','<','<',' ','='}
};
char opset[7]={'+','-','*','/','(',')','#'};
int is_op(char c);
char precede(char a,char b);
int getIndex(char c);
int operate(int a,char op,int b);
int main()
{
  char expression[256];
  int evaluate=0;
  while(scanf("%s",expression)==1)
  {
      evaluate=evaluateExpression(expression);
      printf("%d\n",evaluate);
  }

  return 0;
}
int evaluateExpression(char *expression)
{
    char optr[256];
    int opnd[256];
    int top1,top2;
    char tempData[20];
    int data,a,b;
    char *c,dr[2];
    int x,i;
    char op;
    top1=top2=-1;
    optr[++top1]='#';
    c=expression;
    strcpy(tempData,"\0");
    while(*c!='#'||optr[top1]!='#')
    {
        if(!is_op(*c))
        {
            dr[0]=*c;
            dr[1]='\0';
            strcat(tempData,dr);
            c++;
            if(is_op(*c))
            {
                data=atoi(tempData);
                opnd[++top2]=data;
                strcpy(tempData,"\0");
            }
        }
        else
        {
            switch(precede(optr[top1],*c))
            {
                case '<':
                    optr[++top1]=*c;
                    c++;
                    break;
                case '=':
                    top1--;
                    c++;
                case '>':
                    op=optr[top1--];
                    b=opnd[top2--];
                    a=opnd[top2--];
                    opnd[++top2]=operate(a,op,b);
                    break;
            }
        }
    }
    return opnd[top2];
}

int is_op(char c)
{
    int i;
    for(i=0;i<7;i++)
      if(c==opset[i])
        return 1;
    return 0;
}

char precede(char a,char b)
{
    int i,j;
    i=getIndex(a);
    j=getIndex(b);
    return prior[i][j];
}

int getIndex(char c)
{
    int i;
    for(i=0;i<7;i++)
      if(c==opset[i])
        return i;
}

int operate(int a,char op,int b)
{
    int value;
    switch(op)
    {
        case '+':
             value=a+b;
             break;
        case '-':
             value=a-b;
             break;
        case '*':
            value=a*b;
            break;
        case '/':
            value=a/b;
            break;
    }
    return value;
}

/**************************************************************
	Problem: 2145
	User: admin
	Language: C
	Result: Accepted
	Time:10 ms
	Memory:1144 kb
****************************************************************/