#include <bits/stdc++.h>
using namespace std;
const int N = 100005;
const long long inf = 1e15;
long long a[N];
int op[N];
long long f[N][2];
inline void Updmax(long long &x, long long y) { x = (x <= y) ? y : x; }
int main() {
  int m = 0;
  long long tot = 0, ans = 0, pos = 0, ma = -inf;
  int n;
  scanf("%d", &n);
  scanf("%d", &a[1]);
  for (int i = (2); i <= (n); i++) {
    char s[4];
    int x;
    scanf("%s%d", s + 1, &x);
    op[i - 1] = (s[1] == '+');
    a[i] = x;
  }
  ans = a[1];
  for (int i = (1); i <= (n - 1); i++) {
    if (op[i])
      ans += a[i + 1];
    else
      ans -= a[i + 1];
  }
  for (int i = (n - 1); i >= (1); i--) {
    if (op[i] == 1)
      tot += 2ll * a[i + 1];
    else {
      ma = max(ma, ans + pos - tot);
      pos += 2ll * a[i + 1];
      tot = 0;
    }
  }
  printf("%lld\n", ma);
  return 0;
  return 0;
}
