#include <bits/stdc++.h>
int a[100000];
int fdp[100000][2];
int bdp[100000][2];
int s[100000];
void func(int n) {
  int i, ans = -(1 << 29);
  if (n == 1) {
    if (a[0] < 0) {
      a[0] = -a[0];
    }
    printf("%d\n", a[0]);
    return;
  }
  s[0] = a[0];
  for (i = 1; i < n; i++) {
    s[i] = s[i - 1] + a[i];
  }
  fdp[0][0] = a[0];
  fdp[0][1] = -a[0];
  for (i = 1; i < n; i++) {
    fdp[i][0] = a[i] + ((fdp[i - 1][0]) > (fdp[i - 1][1]) ? (fdp[i - 1][0])
                                                          : (fdp[i - 1][1]));
    fdp[i][1] = -s[i];
  }
  bdp[n - 1][0] = a[n - 1];
  bdp[n - 1][1] = -a[n - 1];
  for (i = n - 2; i >= 0; i--) {
    bdp[i][0] = a[i] + ((bdp[i + 1][0]) > (bdp[i + 1][1]) ? (bdp[i + 1][0])
                                                          : (bdp[i + 1][1]));
    if (i > 0) {
      bdp[i][1] = -(s[n - 1] - s[i - 1]);
    } else {
      bdp[i][1] = -s[n - 1];
    }
  }
  for (i = 0; i < n - 1; i++) {
    ans = ((ans) > (((fdp[i][0]) > (fdp[i][1]) ? (fdp[i][0]) : (fdp[i][1])) +
                    ((bdp[i + 1][0]) > (bdp[i + 1][1]) ? (bdp[i + 1][0])
                                                       : (bdp[i + 1][1])))
               ? (ans)
               : (((fdp[i][0]) > (fdp[i][1]) ? (fdp[i][0]) : (fdp[i][1])) +
                  ((bdp[i + 1][0]) > (bdp[i + 1][1]) ? (bdp[i + 1][0])
                                                     : (bdp[i + 1][1]))));
  }
  printf("%d\n", ans);
}
int main() {
  int n, i;
  while (scanf("%d", &n) == 1) {
    for (i = 0; i < n; i++) {
      scanf("%d", &a[i]);
    }
    func(n);
  }
  return 0;
}
