#include <bits/stdc++.h>
using namespace std;
int n, ans;
long long sum[1000500], a[1000500];
inline int rd() {
  int r;
  scanf("%d", &r);
  return r;
}
int main() {
  n = rd();
  for (long long i = 1; i <= n; i++) a[i] = rd();
  sort(a + 1, a + n + 1);
  reverse(a + 1, a + n + 1);
  for (long long i = 1; i <= n; i++) sum[i] = sum[i - 1] + a[i];
  long long L = 0, R = n;
  for (long long i = 1; i <= n; i++) {
    long long j =
        lower_bound(a + i + 1, a + n + 1, i, greater<long long>()) - a;
    long long a = sum[i] - ans;
    long long b = i * (i - 1) + sum[n] - sum[j - 1] + 1LL * (j - i - 1) * i;
    if (a > b) {
      if (a - b - i > 0) {
        puts("-1");
        return 0;
      }
      L = max(a - b, L);
    }
    R = min(R, j - (a - b - i));
  }
  if (sum[n] & 1) {
    if (!(L & 1)) L++;
    if (!(R & 1)) R--;
  } else {
    if (L & 1) L++;
    if (R & 1) R--;
  }
  if (L > R) {
    puts("-1");
    return 0;
  }
  for (int i = L; i <= R; i += 2) printf("%d%c", i, i == R ? '\n' : ' ');
  return 0;
}
