#include <bits/stdc++.h>
using namespace std;
int v[100005];
int main() {
  int n;
  scanf("%d", &n);
  for (int i = 0; i < n; i++) scanf("%d", &v[i]);
  if (n == 1) {
    printf("-1\n");
    return 0;
  }
  sort(v, v + n);
  if (n == 2) {
    int dif = v[1] - v[0];
    if (dif == 0)
      printf("1\n%d\n", v[0]);
    else if (dif % 2 == 0)
      printf("3\n%d %d %d\n", v[0] - dif, v[0] + dif / 2, v[1] + dif);
    else
      printf("2\n%d %d\n", v[0] - dif, v[1] + dif);
    return 0;
  }
  pair<int, int> dif1 = {1e9, 1e9}, dif2 = {1e9, 1e9};
  for (int i = 1; i < n; i++) {
    int aux = v[i] - v[i - 1];
    if (dif1.first == 1e9)
      dif1 = make_pair(aux, 1);
    else if (dif1.first == aux)
      dif1.second++;
    else if (dif2.first == 1e9)
      dif2 = make_pair(aux, 1);
    else if (dif2.first == aux)
      dif2.second++;
    else {
      printf("0\n");
      return 0;
    }
  }
  if (dif1.first > dif2.first) swap(dif1, dif2);
  if (dif2.first == 1e9) {
    if (dif1.first == 0)
      printf("1\n%d\n", v[0]);
    else
      printf("2\n%d %d\n", v[0] - dif1.first, v[n - 1] + dif1.first);
    return 0;
  }
  if (dif2.second > 1 || dif2.first != dif1.first * 2) {
    printf("0\n");
    return 0;
  }
  int val = 1e9;
  for (int i = 1; i < n; i++) {
    int aux = v[i] - v[i - 1];
    if (aux == dif2.first) {
      val = v[i - 1] + aux / 2;
      break;
    }
  }
  printf("1\n%d\n", val);
  return 0;
}
