#include <bits/stdc++.h>
using namespace std;
int main() {
  long long int n;
  cin >> n;
  long long int a[100005];
  for (long long int i = 0; i < n; i++) {
    cin >> a[i];
  }
  if (n == 1) {
    cout << -1;
    return 0;
  }
  sort(a, a + n);
  if (n == 2) {
    long long int diff = a[1] - a[0];
    if (diff == 0) {
      cout << 1 << endl << a[0];
      return 0;
    } else if (diff % 2 != 0) {
      cout << 2 << endl << a[0] - diff << " " << a[1] + diff;
    } else {
      cout << 3 << endl
           << a[0] - diff << " " << (a[0] + a[1]) / 2 << " " << a[1] + diff;
    }
    return 0;
  }
  long long int d[100005];
  set<long long int> ss;
  for (long long int i = 0; i < n - 1; i++) {
    d[i] = (a[i + 1] - a[i]);
    ss.insert((a[i + 1] - a[i]));
  }
  if (ss.size() > 2) {
    cout << 0;
    return 0;
  }
  long long int c = 0;
  for (long long int i = 0; i < n - 2; i++) {
    if (d[i] == d[i + 1]) {
      c++;
    }
  }
  if ((c == n - 2) && (d[0]) == 0) {
    cout << 1 << endl << a[0];
    return 0;
  }
  if (c == n - 2) {
    cout << 2 << endl
         << a[0] - (a[1] - a[0]) << " " << a[n - 1] + (a[1] - a[0]);
    return 0;
  }
  long long int max = 0, l1, l2, mini = 9999999999;
  for (long long int i = 0; i < n - 1; i++) {
    if (d[i] > max) {
      max = d[i];
      l1 = i;
      l2 = i + 1;
    }
    if (d[i] < mini) mini = d[i];
  }
  long long int cc = 0;
  for (long long int i = 0; i < n - 1; i++) {
    if (d[i] == max) cc++;
  }
  if (cc >= 2) {
    cout << 0;
    return 0;
  }
  if ((a[l1] + a[l2]) % 2 == 0) {
    if (max == (2 * mini))
      cout << 1 << endl << (a[l1] + a[l2]) / 2;
    else {
      cout << 0;
      return 0;
    }
  } else
    cout << 0;
  return 0;
}
