#include<iostream>
#include<string>
using namespace std;
int calcExp(string x);
int calcTerm(string x);
int calcElem(string x);
int calcN(string x) {
int ans = 0;
for(int i = 0; i < x.size(); i++) {
ans *= 10;
ans += x[i] - '0';
}
return ans;
}
int calcExp(string x) {
int schet = 0;
for(int i = x.size() - 1; i >= 0; i--) {
if(x[i] == '(') schet--;
if(x[i] == ')') schet++;
if(x[i] == '+' and schet == 0) return calcExp(x.substr(0, i)) + calcTerm(x.substr(i+1, x.size() - i - 1));
if(x[i] == '-' and schet == 0) return calcExp(x.substr(0, i)) - calcTerm(x.substr(i+1, x.size() - i - 1));
// if(x[i] == '*') return calcExp(x.substr(0, i)) * calcN(x.substr(i+1, x.size() - i - 1));
}
return calcTerm(x);
}
int calcTerm(string x) {
int schet = 0;
for(int i = x.size() - 1; i >= 0; i--) {
if(x[i] == '(') schet--;
if(x[i] == ')') schet++;
if(x[i] == '*' and schet == 0) return calcTerm(x.substr(0, i)) * calcElem(x.substr(i+1, x.size() - i - 1));
}
return calcElem(x);
}
int calcElem(string x) {
if(x[0] == '(') return calcExp(x.substr(1,x.size()-2));
return calcN(x);
}
int main() {
string input;
cin >> input;
cout << calcExp(input);
return 0;
}
|