#include <bits/stdc++.h>
using namespace std;
const double eps = 1e-11;
const int inf = (int)2e9;
const int mod = (int)1e9 + 7;
const int N = 123456;
int n, d;
int a[N];
bool check1() {
  d = a[1] - a[0];
  for (int i = 2; i < n; i++)
    if (a[i] - a[i - 1] != d) return 0;
  return 1;
}
int main() {
  cin >> n;
  for (int i = 0; i < n; i++) cin >> a[i];
  sort(a, a + n);
  if (n == 1) {
    cout << -1 << endl;
    return 0;
  } else if (count(a, a + n, a[0]) == n) {
    printf("1\n%d\n", a[0], a[0], a[0]);
  } else if (n == 2) {
    int d = a[1] - a[0];
    if (d % 2 == 0) {
      printf("3\n%d %d %d\n", a[0] - d, a[0] + d / 2, a[1] + d);
    } else {
      printf("2\n%d %d\n", a[0] - d, a[1] + d);
    }
  } else {
    int d = a[1] - a[0];
    int diff = 0;
    map<int, int> used;
    used[d] = 1;
    for (int i = 2; i < n; i++) {
      int cur = a[i] - a[i - 1];
      used[cur] = 1;
      if (d > a[i] - a[i - 1]) d = a[i] - a[i - 1];
    }
    if (!d || ((int)used.size()) > 2) {
      puts("0");
      return 0;
    }
    bool f = 1;
    int cnt = 0;
    int ans = 0;
    for (int i = 1; i < n; i++) {
      int cur = a[i] - a[i - 1];
      if (cur == d * 2) {
        cnt++;
        ans = a[i] - d;
      } else {
        f &= cur == d;
      }
    }
    if (cnt == 1) {
      printf("1\n%d\n", ans);
    } else if (cnt > 1) {
      puts("0");
    } else if (f) {
      printf("2\n%d %d\n", a[0] - d, a[n - 1] + d);
    } else {
      puts("0");
    }
  }
  return 0;
}
