#include <bits/stdc++.h>
using namespace std;
int main() {
  ios_base::sync_with_stdio(0);
  int n;
  cin >> n;
  int a[100005];
  for (int i = 0; i < n; i++) cin >> a[i];
  sort(a, a + n);
  if (n == 1) {
    cout << -1 << endl;
    return 0;
  }
  bool flag = true;
  for (int i = 1; i < n; i++) flag = flag && (a[0] == a[i]);
  if (flag) {
    cout << 1 << endl;
    cout << a[0] << endl;
    return 0;
  }
  if (n == 2) {
    if ((a[0] + a[1]) % 2 == 0)
      cout << 3 << endl;
    else
      cout << 2 << endl;
    cout << 2 * a[0] - a[1] << " ";
    if ((a[0] + a[1]) % 2 == 0) cout << (a[1] + a[0]) / 2 << " ";
    cout << 2 * a[1] - a[0] << " ";
    return 0;
  }
  flag = true;
  for (int i = 2; i < n; i++) flag = flag && (a[1] - a[0] == a[i] - a[i - 1]);
  if (flag) {
    cout << 2 << endl;
    cout << 2 * a[0] - a[1] << " ";
    cout << 2 * a[n - 1] - a[n - 2] << endl;
    return 0;
  }
  vector<int> diff;
  set<int> di;
  for (int i = 1; i < n; i++) {
    diff.push_back(a[i] - a[i - 1]);
    di.insert(a[i] - a[i - 1]);
  }
  if (di.size() != 2) {
    cout << 0 << endl;
    return 0;
  }
  sort(diff.begin(), diff.end());
  int chan = diff[n - 2];
  if (chan != 2 * diff[0]) {
    cout << 0 << endl;
    return 0;
  }
  for (int i = n - 3; i >= 0; i--) {
    if (diff[i] == chan || diff[i] != diff[0]) {
      cout << 0 << endl;
      return 0;
    }
  }
  for (int i = 1; i < n; i++) {
    if (a[i] - a[i - 1] == chan) {
      if ((a[i] + a[i - 1]) % 2 == 0) {
        cout << 1 << endl;
        cout << (a[i] + a[i - 1]) / 2 << endl;
        return 0;
      } else {
        cout << 0 << endl;
        return 0;
      }
    }
  }
  return 0;
}
