#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e5 + 5;
int n;
int a[maxn], k, b[2];
map<int, int> mp;
int main() {
  cin >> n;
  for (int i = 0; i < n; i++) {
    cin >> a[i];
  }
  sort(a, a + n);
  mp.clear();
  for (int i = 1; i < n; i++) {
    mp[a[i] - a[i - 1]]++;
  }
  if (n == 1)
    cout << -1 << endl;
  else if (n == 2) {
    for (auto i : mp) k = i.first;
    if (k == 0) {
      cout << 1 << endl;
      cout << a[0] << endl;
    } else if (k & 1) {
      cout << 2 << endl;
      cout << a[0] - k << " " << a[1] + k << endl;
    } else {
      cout << 3 << endl;
      cout << a[0] - k << " " << a[0] + k / 2 << " " << a[1] + k << endl;
    }
  } else {
    if (mp.size() == 1) {
      for (auto i : mp) k = i.first;
      if (k == 0) {
        cout << 1 << endl;
        cout << a[0] << endl;
      } else {
        cout << 2 << endl;
        cout << a[0] - k << " " << a[n - 1] + k << endl;
      }
    } else if (mp.size() == 2) {
      int indx = 0;
      for (auto i : mp) {
        b[indx++] = i.first;
      }
      if (mp[b[1]] == 1 && b[1] / 2 == b[0] && b[1] % 2 == 0) {
        cout << 1 << endl;
        for (int i = 1; i < n; i++) {
          if (a[i] - a[i - 1] == b[1]) {
            cout << a[i - 1] + b[1] / 2 << endl;
            break;
          }
        }
      } else {
        cout << 0 << endl;
      }
    } else {
      cout << 0 << endl;
    }
  }
  return 0;
}
