#include <bits/stdc++.h>
using namespace std;
long long int a[100001];
map<long long int, int> cnt;
int main() {
  int n;
  cin >> n;
  for (int i = 0; i < n; i++) cin >> a[i];
  if (n == 1) {
    cout << "-1" << endl;
    return 0;
  }
  sort(a, a + n);
  vector<int> ans;
  for (int i = 0; i < n - 1; i++) cnt[a[i + 1] - a[i]]++;
  if (cnt.size() == 1) {
    long long int d = a[1] - a[0];
    if (d != 0) {
      ans.push_back(a[0] - d);
      ans.push_back(a[n - 1] + d);
    } else
      ans.push_back(a[0]);
    if (n == 2 && (d) % 2 == 0 && d != 0) {
      ans.push_back(a[0] + d / 2);
    }
  }
  long long int diff, d = -1;
  map<long long int, int>::iterator it = cnt.begin();
  if (cnt.size() == 2) {
    if (it->second == 1) {
      d = it->first;
      diff = (++it)->first;
      if (d > 0 && d % 2 == 0 && d / 2 == diff) {
        for (int i = 0; i < n - 1; i++) {
          if (a[i + 1] - a[i] == d) ans.push_back(a[i] + d / 2);
        }
      }
    }
    it = cnt.begin();
    if ((++it)->second == 1) {
      d = it->first;
      diff = (--it)->first;
      if (d > 0 && d % 2 == 0 && d / 2 == diff) {
        for (int i = 0; i < n - 1; i++) {
          if (a[i + 1] - a[i] == d) ans.push_back(a[i] + d / 2);
        }
      }
    }
  }
  sort(ans.begin(), ans.end());
  cout << ans.size() << endl;
  for (int i = 0; i < ans.size(); i++) cout << ans[i] << " ";
  cout << endl;
  return 0;
}
