#include <bits/stdc++.h>
using namespace std;
int A[(int)1e5 + 5];
map<int, int> M;
int cnt = 0;
vector<int> V;
int main() {
  int n;
  cin >> n;
  if (n == 1) {
    cout << -1 << endl;
    return 0;
  }
  for (int i = 0; i < n; cin >> A[i++])
    ;
  sort(A, A + n);
  for (int i = 1; i < n; i++) {
    if (!M[A[i] - A[i - 1]]) V.push_back(A[i] - A[i - 1]), cnt++;
    M[A[i] - A[i - 1]]++;
  }
  if (cnt > 2) {
    cout << 0 << endl;
    return 0;
  } else if (cnt == 2) {
    sort(V.begin(), V.end());
    if (M[V[0]] > 1 && M[V[1]] > 1) {
      cout << 0 << endl;
      return 0;
    }
    if (V[0] == V[1] / 2 && V[1] % 2 == 0 && M[V[1]] == 1) {
      cout << 1 << endl;
      for (int i = 1; i < n; i++) {
        if (A[i] - A[i - 1] == V[1]) {
          cout << A[i - 1] + V[0] << endl;
          return 0;
        }
      }
    } else {
      cout << 0 << endl;
      return 0;
    }
  } else {
    if (V[0] == 0) {
      cout << 1 << endl;
      cout << A[0] << endl;
      return 0;
    }
    if (n == 2 && V[0] % 2 == 0) {
      cout << 3 << endl;
      cout << A[0] - V[0] << ' ' << A[0] + (V[0] / 2) << ' ' << A[1] + V[0]
           << endl;
    } else {
      cout << 2 << endl;
      cout << A[0] - V[0] << ' ' << A[n - 1] + V[0] << endl;
    }
  }
  return 0;
}
