include <iostream>
using namespace std;
//Retourne la valeur de la sous-expression de la chaîne e
//commençant à la position i. Au retour de la fonction, i
//est la position du caractère qui suit la sous-expression
//évaluée.
int evalAux(char e[], int &i)
{
//Si le premier caractère est '('.
//La sous-expression est donc une somme,
//une différence, ...
if (e[i] == '(')
{
i++; //On passe la parenthèse.
int valOpGche = evalAux(e, i); //Valeur de l'opérande gauche.
char op = e[i]; //Récupération de l'opérateur.
i++; //On passe l'opérateur.
int valOpDt = evalAux(e, i); //Valeur de l'opérande droit.
i++; //On passe la parenthèse fermante.
switch (op)
{
case '+': return valOpGche + valOpDt;
case '-': return valOpGche - valOpDt;
case '*': return valOpGche * valOpDt;
default: return valOpGche / valOpDt;
}
}
else //e[i] != '(', donc la sous-expression est un nombre.
{
int val = 0;
for (; e[i] >= '0' && e[i] <= '9'; i++)
val = 10 * val + e[i] - '0';
return val;
}
}
//Evalue l'expression donnée dans la chaîne e.
int eval(char e[])
{
int i = 0;
return evalAux(e, i);
}
int main(){
char e[100];
cin >> e;
cout << eval(e) << endl;
return 0 ;
}