#include <bits/stdc++.h>
using namespace std;
int n, m, q;
int flag, tmp;
int mxm, mnm;
long long max(long long a, long long b) {
  if (a > b)
    return a;
  else
    return b;
}
long long min(long long a, long long b) {
  if (a < b)
    return a;
  else
    return b;
}
long long gcd(long long a, long long b) {
  if (b == 0)
    return a;
  else
    return gcd(b, a % b);
}
int main() {
  scanf("%d", &n);
  int ans = 0;
  int pos = 0, neg = 0;
  mnm = 10000;
  mxm = -10000;
  for (int i = 0; i < n; i++) {
    int t;
    scanf("%d", &t);
    if (t > 0) ans += t;
    if (t > 0 && t % 2) {
      mnm = min(mnm, t);
      pos++;
    }
    if (t < 0 && t % 2) {
      mxm = max(mxm, t);
      neg++;
    }
  }
  if (ans % 2)
    printf("%d", ans);
  else {
    if (pos > 1)
      printf("%d", max(ans - mnm, ans + mxm));
    else
      printf("%d", ans + mxm);
  }
  return 0;
}
