#include <bits/stdc++.h>   using namespace std;   vector<int> dif;   map<int, int> g;   int a[120000];   int main() {     int n, flag;     cin >> n;     for (int i = 1; i <= n; i++) cin >> a[i];     sort(a + 1, a + 1 + n);     for (int i = 2; i <= n; i++) {       if (g[a[i] - a[i - 1]] == 0) dif.push_back(a[i] - a[i - 1]);       g[a[i] - a[i - 1]]++;     }     int sz = dif.size();     if (sz > 2 || n == 1) {       if (sz > 2)         cout << 0 << endl;       else         cout << -1 << endl;       return 0;     }     if (sz == 1) {       int D = dif[0];       if (dif[0] == 0) {         cout << 1 << endl;         cout << a[1] << endl;         return 0;       }       if (n == 2) {         if ((a[2] - a[1]) % 2 == 0) {           cout << 3 << endl;           cout << a[1] - D <<     << (a[2] + a[1]) / 2 <<     << a[2] + D << endl;           return 0;         }       }       cout << 2 << endl;       cout << a[1] - D <<     << a[n] + D << endl;       return 0;     }     int D1 = min(dif[0], dif[1]), D2 = max(dif[0], dif[1]);     if (D1 * 2 != D2 || g[D2] > 1) {       cout << 0 << endl;       return 0;     }     cout << 1 << endl;     for (int i = 2; i <= n; i++) {       if (a[i] - a[i - 1] == D2) {         cout << a[i] - D1 << endl;         return 0;       }     }     return 0;   }   