#include <bits/stdc++.h>
using namespace std;
int main() {
  int n;
  scanf("%d", &n);
  int a[n];
  for (int i = 0; i < n; i++) scanf("%d", &a[i]);
  if (n == 1) {
    printf("-1\n");
    return 0;
  }
  sort(a, a + n);
  if (n == 2) {
    int d = a[1] - a[0];
    if (d % 2 == 0) {
      if (a[0] == a[1]) {
        printf("1\n");
        printf("%d", a[0]);
        printf("\n");
      } else {
        printf("3\n");
        printf("%d %d %d", a[0] - d, a[0] + (d / 2), a[1] + d);
        printf("\n");
      }
    } else {
      printf("2\n");
      printf("%d %d", a[0] - d, a[1] + d);
      printf("\n");
    }
    return 0;
  }
  set<int> st;
  map<int, int> make_pair;
  for (int i = 1; i < n; i++) {
    int d = a[i] - a[i - 1];
    st.insert(d);
    make_pair[d] += 1;
  }
  if (st.size() > 2) {
    printf("0\n");
    return 0;
  }
  if (st.size() == 1) {
    auto it = st.begin();
    if (*it == 0) {
      printf("1\n");
      printf("%d\n", a[0]);
      return 0;
    }
    printf("2\n");
    printf("%d %d\n", a[0] - (*it), a[n - 1] + (*it));
    return 0;
  }
  if (st.size() == 2) {
    auto it = st.begin();
    auto it1 = st.end();
    it1--;
    if (make_pair[*it1] == 1 && (*it1) == (2 * (*it))) {
      printf("1\n");
      for (int i = 1; i < n; i++) {
        if (a[i] - a[i - 1] == (*it1)) {
          printf("%d\n", a[i - 1] + (*it));
          break;
        }
      }
    } else {
      printf("0\n");
    }
    return 0;
  }
  return 0;
}
