#include <stdio.h>
#include <deque>
using namespace std;
void mutiply(deque<char>::iterator &it, deque<int> &stmp, deque<char> &ftmp)
{
for(it = ftmp.begin(); it != ftmp.end(); it++)
{
if('\0' == *it) break;
switch(*it)
{
case '+':
{
stmp.push_back(stmp.front());
stmp.pop_front();
}
break;
case '-':
{
stmp.push_back(stmp.front());
stmp.pop_front();
}
break;
case '*':
{
int data = stmp.front();
stmp.pop_front();
data *= stmp.front();
stmp.pop_front();
stmp.push_front(data);
ftmp.erase(it);
}
break;
case '/':
{
int data = stmp.front();
stmp.pop_front();
data /= stmp.front();
stmp.pop_front();
stmp.push_front(data);
ftmp.erase(it);
}
break;
default:
printf("I am here.");
break;
}
}
}
void add(deque<char>::iterator &it, deque<int> &stmp, deque<char> &ftmp)
{
for(it = ftmp.begin(); it != ftmp.end(); it++)
{
switch(*it)
{
case '+':
{
int data = stmp.front();
stmp.pop_front();
data += stmp.front();
stmp.pop_front();
stmp.push_front(data);
}
break;
case '-':
{
int data = stmp.front();
stmp.pop_front();
data -= stmp.front();
stmp.pop_front();
stmp.push_front(data);
}
break;
default:
printf("I am here.\n");
break;
}
}
}
void operation(char *str)
{
deque<int> shuju;
deque<char> fuhao;
deque<int> stmp;
deque<char> ftmp;
deque<char>::iterator itf;
deque<char>::iterator ittmp;
while('\0' != *str)
{
if(*str >= '0' && *str <= '9')
{
shuju.push_back(*str - 48);
}
else if('(' == *str)
{
while('\0' != *str++)
{
if(*str >= '0' && *str <= '9')
{
stmp.push_back(*str - 48);
}
else if(')' == *str)
{
break;
}
else
{
ftmp.push_back(*str);
}
}
mutiply(ittmp, stmp, ftmp);
stmp.push_back(stmp.front());
stmp.pop_front();
add(ittmp, stmp, ftmp);
shuju.push_back(stmp.front());
stmp.clear();
ftmp.clear();
}
else
{
fuhao.push_back(*str);
}
*str++;
}
#if 0
deque<int>::iterator its;
for(its = shuju.begin(); its != shuju.end(); its++)
{
printf("%d\n", *its);
}
#endif
mutiply(itf, shuju, fuhao);
shuju.push_back(shuju.front());
shuju.pop_front();
add(itf, shuju, fuhao);
printf("result = %d\n", shuju.front());
}
int main()
{
char buf[100] = {0};
scanf("%s", buf);
operation(buf);
return 0;
}