#include <bits/stdc++.h>
#pragma GCC optimize("Ofast")
using namespace std;
int main() {
  long long int n, x, flag = 0, c = 0, card, d;
  vector<long long> v;
  cin >> n;
  for (auto i = 0; i < n; i++) {
    cin >> x;
    v.push_back(x);
  }
  if (n == 1) {
    cout << -1;
    return 0;
  }
  sort(v.begin(), v.end());
  if (v[0] == v[n - 1]) {
    cout << 1 << "\n";
    cout << v[0];
    return 0;
  }
  d = v[1] - v[0];
  if (n > 2) d = (d < (v[2] - v[1])) ? d : v[2] - v[1];
  if (n == 2 && d % 2 == 0) {
    cout << 3 << "\n";
    cout << v[0] - d << " " << v[0] + d / 2 << " " << v[1] + d;
    return 0;
  }
  for (auto i = 0; i < n - 1; i++) {
    if ((v[i + 1] - v[i]) != d) {
      flag = 1;
      c++;
      if (v[i + 1] - v[i] == 2 * d) {
        card = v[i] + d;
      } else {
        cout << 0;
        return 0;
      }
    }
    if (c > 1) {
      cout << 0;
      return 0;
    }
  }
  if (!flag) {
    cout << 2 << "\n";
    cout << v[0] - d << " " << v[n - 1] + d;
    return 0;
  }
  cout << 1 << "\n";
  cout << card;
}
