#include <bits/stdc++.h>
using namespace std;
const long long inf = 1e17;
const int MAXM = 1e6 + 5;
const int MAXN = 1e6 + 4;
long long a[MAXM], b[MAXM];
int main() {
  int n, i, j, k;
  scanf("%d", &n);
  for (i = 1; i <= n; i++) {
    scanf("%lld", &a[i]);
  }
  long long maxm = -1e9, su = 0;
  for (i = 1; i <= n; i++) {
    if (a[i] < 0) b[i] = -a[i];
    if (b[i] % 2 == 1) {
      maxm = max(maxm, a[i]);
    }
    if (a[i] > 0) {
      su += a[i];
    }
  }
  if (su & 1) {
    maxm = max(maxm, su);
  }
  long long Ans = -1e9;
  for (i = 1; i <= n; i++) {
    if (a[i] > 0) {
      if ((su - a[i]) & 1) {
        Ans = max(Ans, su - a[i]);
      }
    }
  }
  long long p = -1e9;
  for (i = 1; i <= n; i++) {
    if (a[i] > 0) continue;
    if (a[i] < 0) b[i] = -a[i];
    if (b[i] % 2 == 1) {
      if (a[i] < 0) {
        p = max(p, a[i]);
      }
    }
  }
  if (p != -1e9) {
    maxm = max(maxm, su + p);
  }
  if (Ans != -1e9) {
    maxm = max(maxm, Ans);
  }
  cout << maxm << endl;
  return 0;
}
