#include #define rep(i, n) for (int (i) = 0; (i) < (int)(n); (i)++) const int dx[] = {1, 0, -1, 0}; const int dy[] = {0, 1, 0, -1}; using namespace std; typedef long long ll; const ll INF = 1ll<<60; bool isDigit(char c) { return '0' <= c && c <= '9'; } ll get(const string& s) { int n = s.size(); int cur = 0; ll ret = 0; int sign; if (!isDigit(s[cur])) return -INF; if (!isDigit(s[n-1])) return -INF; while (isDigit(s[cur])) { ret = ret*10 + (s[cur]-'0'); cur++; } while (cur < n) { if (s[cur] == '+') sign = 1; else sign = -1; cur += 1; ll tmp = 0; while (cur < n && isDigit(s[cur])) { tmp = tmp*10 + (s[cur]-'0'); cur++; } ret += sign * tmp; } return ret; } int main() { cin.tie(0); ios::sync_with_stdio(false); string s; cin >> s; int n = s.size(); ll ans = -INF; for (int i = 0; i < n; i++) { string t = s.substr(i, 1); int cur = (i+1) % n; while (cur != i) { t += s.substr(cur, 1); cur = (cur+1) % n; } ll tmp = get(t); ans = max(ans, tmp); } cout << ans << endl; return 0; }