#include <bits/stdc++.h>
using namespace std;
int a[500005], b[500005], c[500005], n;
int gao(int x) {
  int i, j = 0, p = 0, r;
  long long sl, sr;
  if (x >= a[n]) p = j, b[j] = x, c[j] = 0, j++;
  for (i = n; i > 0; i--) {
    b[j] = a[i], c[j] = 0, j++;
    if (a[i] > x && x >= a[i - 1]) p = j, b[j] = x, c[j] = 0, j++;
  }
  for (sl = sr = i = 0, r = n; i <= n; i++) {
    sl += b[i];
    while (r > i && b[r] < i + 1) sr += b[r--];
    while (r < i) sr -= b[++r];
    if (sl > 1ll * (i + 1) * (r) + sr) return i < p ? 1 : 2;
  }
  return 0;
}
int fl(int t) {
  int l = t, r = n - (t ^ (n & 1)), m;
  while (l < r) {
    m = (l + r) / 2;
    if (t ^ (m & 1)) m--;
    if (gao(m) == 1)
      l = m + 2;
    else
      r = m;
  }
  return r;
}
int fr(int t) {
  int l = t, r = n - (t ^ (n & 1)), m;
  while (l < r) {
    m = (l + r + 1) / 2;
    if (t ^ (m & 1)) m++;
    if (gao(m) == 2)
      r = m - 2;
    else
      l = m;
  }
  return l;
}
int main() {
  int i, l, r;
  long long t;
  for (scanf("%d", &n), t = i = 0; i < n; i++)
    scanf("%d", a + i + 1), t += a[i + 1];
  sort(a + 1, a + n + 1);
  t %= 2;
  l = fl(t), r = fr(t);
  if (l > r || gao(t) == 2 || gao(n - (t ^ (n & 1))) == 1) {
    puts("-1");
    return 0;
  }
  for (i = l; i <= r; i += 2) printf("%d ", i);
  return 0;
}
