#include <bits/stdc++.h>
using namespace std;
const int inf = 1000000000;
int a[100009];
int main() {
  int n;
  cin >> n;
  for (int i = (1); i <= (n); ++i) cin >> a[i];
  sort(a + 1, a + n + 1);
  if (n == 1) {
    cout << "-1" << endl;
    return 0;
  }
  vector<int> ans;
  bool good = true;
  for (int i = (2); i <= (n); ++i)
    if (a[i] - a[i - 1] != a[2] - a[1]) good = false;
  if (good) ans.push_back(a[1] - (a[2] - a[1]));
  if (good) ans.push_back(a[n] + (a[2] - a[1]));
  int d = a[2] - a[1];
  int i = 2;
  vector<int> add;
  bool temp = true;
  while (i <= n) {
    if (a[i] - a[i - 1] == d) {
      ++i;
    } else if (a[i] - a[i - 1] == 2 * d) {
      add.push_back(a[i - 1] + d);
      ++i;
    } else {
      temp = false;
      ++i;
    }
  }
  if (temp && (int)((add).size()) == 1) ans.push_back(add[0]);
  if ((a[1] + a[2]) % 2 == 0) {
    int val = (a[1] + a[2]) / 2;
    a[++n] = (a[1] + a[2]) / 2;
    sort(a + 1, a + n + 1);
    bool good = true;
    for (int i = (2); i <= (n); ++i)
      if (a[i] - a[i - 1] != a[2] - a[1]) good = false;
    if (good) ans.push_back(val);
  }
  sort(ans.begin(), ans.end());
  ans.resize(unique(ans.begin(), ans.end()) - ans.begin());
  cout << (int)((ans).size()) << endl;
  for (int i = (0); i <= ((int)((ans).size()) - 1); ++i) cout << ans[i] << " ";
  cout << endl;
}
