#include <bits/stdc++.h>
using namespace std;
using namespace chrono;
const int64_t infinity = (int64_t)1e9 + 42;
const int64_t llInfinity = (int64_t)1e18 + 256;
const int64_t module = (int64_t)1e9 + 7;
const long double eps = 1e-8;
mt19937_64 randGen(system_clock().now().time_since_epoch().count());
inline void raiseError(string errorCode) {
  cerr << "Error : " << errorCode << endl;
  exit(42);
}
signed main() {
  ios_base::sync_with_stdio(false);
  int64_t n;
  cin >> n;
  ++n;
  vector<int64_t> v(n - 1);
  for (int64_t i = 0; i < n - 1; ++i) {
    cin >> v[i];
  }
  sort(begin(v), end(v));
  reverse(begin(v), end(v));
  vector<int64_t> pinl(n), pinr(n);
  vector<int64_t> soom(n);
  for (int64_t i = 0; i < n - 1; ++i) {
    soom[i + 1] = soom[i] + v[i];
  }
  auto sufSum = [&](int64_t first, int64_t k) {
    int64_t pos =
        lower_bound(begin(v), end(v), k, greater<int64_t>()) - begin(v);
    pos = max(pos, first);
    return soom.back() - soom[pos] + int64_t(k) * (pos - first);
  };
  for (int64_t i = 1; i < n; ++i) {
    int64_t lPart = soom[i - 1];
    int64_t rPart = int64_t(i) * (i - 1) + sufSum(i - 1, i);
    int64_t toAdd = rPart - lPart;
    pinl[i - 1] = toAdd;
  }
  pinl[n - 1] = n;
  for (int64_t i = 1; i < n; ++i) {
    int64_t lPart = soom[i];
    int64_t rPart = int64_t(i) * (i - 1) + sufSum(i, i);
    int64_t toAdd = lPart - rPart;
    pinr[i] = toAdd;
    if (pinr[i] > i) {
      pinr[i] = n + 42;
    }
  }
  pinr[0] = 0;
  for (int64_t i = n - 1; i > 0; --i) {
    pinl[i - 1] = min(pinl[i - 1], pinl[i]);
  }
  for (int64_t i = 1; i < n; ++i) {
    pinr[i] = max(pinr[i], pinr[i - 1]);
  }
  set<int64_t> values;
  for (int64_t i = 0; i < n; ++i) {
    int64_t lBound = max(int64_t(i == n - 1 ? 0 : v[i]), pinr[i]);
    int64_t rBound = min(int64_t(i == 0 ? n - 1 : v[i - 1]), pinl[i]);
    if (lBound > rBound) {
      continue;
    }
    assert(0 <= lBound && lBound <= rBound && rBound < n);
    for (int64_t j = lBound; j <= rBound; ++j) {
      values.insert(j);
    }
  }
  bool smth = false;
  for (int64_t i : values) {
    if (i % 2 == soom.back() % 2) {
      cout << i << " ";
      smth = true;
    }
  }
  if (!smth) {
    cout << -1;
  }
  cout << endl;
  return 0;
}
