#include using namespace std; typedef pair P; typedef long long ll; typedef string::const_iterator State; class ParseError {}; #define rep(i, n) for (int i = 0; i < n; i++) #define pb push_back #define inf INT_MAX / 4 #define ALL(v) v.begin(), v.end() int number(State &begin); int expression(State &begin); void consume(State &begin, char expected) { if (*begin == expected) { begin++; } else { cerr << "Expected '" << expected << "' but got '" << *begin << "'" << endl; cerr << "Rest string is '"; while (*begin) { cerr << *begin++; } cerr << "'" << endl; throw ParseError(); } } // 数字をパースする int number(State &begin) { int ret = 0; while (isdigit(*begin)) { ret *= 10; ret += *begin - '0'; begin++; } return ret; } // 四則演算の式をパースして評価結果を返す int expression(State &begin) { int ret = number(begin); while (1) { if (*begin == '*') { begin++; ret += number(begin); } else if (*begin == '+') { begin++; ret *= number(begin); } else { break; } } return ret; } int main(void) { string s; getline(cin, s); State begin = s.begin(); int ans = expression(begin); cout << ans << endl; return 0; }