#include <bits/stdc++.h>
using namespace std;
const int dirx[] = {0, 1, 0, -1};
const int diry[] = {1, 0, -1, 0};
inline void debugMode() {}
int n, a[100100], first = 1e9, second = 1e9, rs, c1, c2;
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  cin >> n;
  if (n == 1) return cout << -1, 0;
  for (int i = 1; i <= n; i++) cin >> a[i];
  sort(a + 1, a + n + 1);
  for (int i = 2; i <= n; i++) {
    int val = a[i] - a[i - 1];
    if (first == 1e9 || first == val)
      c1++, first = val;
    else if (second == 1e9 || second == val)
      c2++, second = val;
    else
      return cout << 0, 0;
  }
  if (n == 2 && !first) return cout << 1 << "\n" << a[1], 0;
  if (n == 2 && first & 1) {
    cout << 2 << "\n";
    cout << a[1] - first << " " << a[2] + first;
    return 0;
  }
  if (n == 2) {
    cout << 3 << "\n";
    cout << a[1] - first << " " << a[1] + first / 2 << " " << a[2] + first;
    return 0;
  }
  if (first > second) swap(first, second), swap(c1, c2);
  if (second == 1e9) {
    if (!first) return cout << 1 << "\n" << a[1], 0;
    cout << 2 << "\n";
    cout << a[1] - first << " " << a[n] + first;
    return 0;
  }
  if (c2 != 1) return cout << 0, 0;
  if (2 * first != second) return cout << 0, 0;
  cout << 1 << "\n";
  for (int i = 2; i <= n; i++) {
    if (a[i] - a[i - 1] == second) return cout << a[i] - first, 0;
  }
}
