#ifndef _GLIBCXX_NO_ASSERT #include #endif #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include //#ifdef __GXX_EXPERIMENTAL_CXX0X__ #include #include #include #include #include #include #include #include //#endif #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include //#include #include //#include #include //#include #include //#include #include #include #include #include //#include #include #include #include #include #include using namespace std; int main () { string str; cin >> str; int ans = INT_MIN; for( size_t i = 0; i < str.size ()+5; i++ ) { rotate ( str.begin () , str.begin () + 1 , str.end () ); if( str[0] == '+' || str[str.size () - 1] == '+' || str[0] == '-' || str[str.size () - 1] == '-' ) { continue; } int memo = 0; int res = 0; char z = '+'; for( auto x : str ) { switch( x ) { case '+':{ if( z == '+' ) { res += memo; } else { res -= memo; } z = '+'; memo = 0; break; } case '-':{ if( z == '+' ) { res += memo; } else { res -= memo; } z = '-'; memo = 0; break; } default:{ memo *= 10; memo += x - '0'; break; } } } if( z == '+' ) { res += memo; } else { res -= memo; } ans = max ( ans , res ); } cout << ans << endl; }