#include <bits/stdc++.h>
using namespace std;
int main() {
  int n;
  cin >> n;
  vector<int> a(n);
  for (int i = 0; i < n; i++) {
    cin >> a[i];
  }
  sort(a.begin(), a.end());
  if (n == 1) {
    cout << -1 << endl;
    return 0;
  }
  set<int> diffs;
  map<int, int> diffs_cnt;
  for (int i = 0; i + 1 < a.size(); i++) {
    int diff = a[i + 1] - a[i];
    diffs.insert(diff);
    diffs_cnt[diff]++;
  }
  if (diffs.size() == 1) {
    int diff = *(diffs.begin());
    if (diff == 0) {
      cout << 1 << endl;
      cout << a[0] << endl;
      return 0;
    } else {
      if (a.size() > 2 || (a.size() == 2 && (diff % 2 != 0))) {
        cout << 2 << endl;
        cout << a[0] - diff << " " << a.back() + diff << endl;
        return 0;
      } else if (a.size() == 2) {
        cout << 3 << endl;
        cout << a[0] - diff << " " << a[0] + diff / 2 << " " << a.back() + diff
             << endl;
        return 0;
      }
    }
  } else if (diffs.size() == 2) {
    int lower = *(diffs.begin());
    int higher = *(++diffs.begin());
    if ((diffs_cnt[higher] == 1) && lower * 2 == higher) {
      int res;
      for (int i = 0; i + 1 < a.size(); i++) {
        if (a[i + 1] - a[i] == higher) {
          res = a[i] + lower;
          break;
        }
      }
      cout << 1 << endl;
      cout << res << endl;
    } else {
      cout << 0 << endl;
      return 0;
    }
  } else {
    cout << 0 << endl;
    return 0;
  }
  return 0;
}
