#include <bits/stdc++.h>
using namespace std;
signed main() {
  long long int n;
  cin >> n;
  long long int a[n];
  for (long long int i = 0; i < n; i++) cin >> a[i];
  sort(a, a + n);
  if (n == 1) return cout << -1, 0;
  if (n == 2) {
    if (a[0] == a[1]) {
      cout << 1 << endl << a[0];
      return 0;
    }
    if ((a[1] - a[0]) % 2 == 0) {
      cout << 3 << endl
           << a[0] - a[1] + a[0] << " " << (a[1] + a[0]) / 2 << " "
           << a[1] + a[1] - a[0];
      return 0;
    }
    cout << 2 << endl << a[0] - a[1] + a[0] << " " << a[1] + a[1] - a[0];
    return 0;
  }
  map<long long int, long long int> mp;
  for (long long int i = 1; i < n; i++) mp[a[i] - a[i - 1]]++;
  if (n == 3) {
    long long int d = a[1] - a[0];
    long long int r = a[2] - a[1];
    if (r == 0 && d == 0) {
      return cout << 1 << endl << a[0], 0;
    }
    if (d == 0) return cout << 0, 0;
    if (r == 0) return cout << 0, 0;
    if (d == r) {
      cout << 2 << endl << a[0] - d << " " << a[2] + d;
      return 0;
    } else if (r % d == 0 && r / d == 2) {
      cout << 1 << endl << " " << a[1] + d;
      return 0;
    } else if (d % r == 0 && d / r == 2) {
      cout << 1 << endl << a[0] + r;
      return 0;
    } else
      return cout << 0, 0;
  }
  long long int c = 0, d, mx = 0;
  set<long long int> st;
  for (long long int i = 1; i < n; i++) {
    if (mp[a[i] - a[i - 1]]) {
      long long int x = mp[a[i] - a[i - 1]];
      st.insert(a[i] - a[i - 1]);
      if (mp[a[i] - a[i - 1]] > mx) d = a[i] - a[i - 1];
      mx = max(mx, x);
    }
  }
  for (long long int i = 1; i < n; i++) {
    if (a[i] - a[i - 1] != d) c++;
  }
  if (c > 1) return cout << 0, 0;
  if (st.size() > 2) return cout << 0, 0;
  if (st.size() == 1) {
    if (d == 0) {
      cout << 1 << endl << a[0];
      return 0;
    }
    cout << 2 << endl << a[0] - d << " " << a[n - 1] + d;
    return 0;
  }
  for (long long int i = 1; i < n; i++) {
    if (d == 0) return cout << 0, 0;
    if (a[i] - a[i - 1] != d) {
      if ((a[i] - a[i - 1]) % d == 0 && (a[i] - a[i - 1]) / d == 2) {
        cout << 1 << endl << a[i - 1] + d;
        return 0;
      } else
        return cout << 0, 0;
    }
  }
}
