#include <bits/stdc++.h>
using namespace std;
int dx[] = {+1, -1, 0, 0};
int dy[] = {0, 0, +1, -1};
int dx2[] = {+1, -1, 0, 0, +1, +1, -1, -1};
int dy2[] = {0, 0, +1, -1, +1, -1, -1, +1};
long long squ(long long x) { return (x * x); }
long long power(long long bs, long long k) {
  long long x = 1, y = bs;
  if (k == 0) return 1;
  while (k > 0) {
    if (k % 2 == 1) x = (x * y);
    y *= y;
    k /= 2;
  }
  return x;
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  ;
  cout.unsetf(ios::floatfield);
  cout.precision(6);
  cout.setf(ios::fixed, ios::floatfield);
  ;
  int n, i, j, a[100010], ms = -1, df;
  cin >> n;
  for (i = 0; i < n; i++) {
    cin >> a[i];
  }
  sort(a, a + n);
  if (n == 1) {
    cout << -1;
    return 0;
  }
  int ans = 0, dc = 0;
  df = a[1] - a[0];
  if (n == 2) {
    if (df == 0) {
      cout << 1 << endl << a[0];
      return 0;
    }
    ans = 2;
    if (df % 2 == 0) {
      dc = 1;
    }
    if (dc) ans = 3;
    cout << ans << endl;
    if (ans == 3)
      cout << a[0] - df << ' ' << a[0] + (df / 2) << ' ' << a[1] + df;
    else
      cout << a[0] - df << ' ' << a[1] + df;
    return 0;
  }
  df = 1000000009;
  for (i = 1; i < n; i++) df = min(a[i] - a[i - 1], df);
  for (i = 1; i < n; i++) {
    if (a[i] - a[i - 1] != df) {
      if (ms != -1) {
        cout << 0;
        return 0;
      }
      ms = a[i - 1] + df;
      if (a[i] - ms != df) {
        cout << 0;
        return 0;
      }
    }
  }
  if (ms != -1) {
    cout << 1 << endl << ms;
  } else {
    if (df == 0)
      cout << 1 << endl << a[n - 1];
    else
      cout << 2 << endl << a[0] - df << ' ' << a[n - 1] + df;
  }
  return 0;
}
