#include <bits/stdc++.h>   using namespace std;   int main() {     int no_of_cards;     scanf( %d , &no_of_cards);     vector<int> card(no_of_cards);     for (int i = 0; i < no_of_cards; i++) scanf( %d , &card[i]);     if (no_of_cards == 1) {       printf( -1 n );       return 0;     }     vector<int> new_cards;     if (no_of_cards == 2 && (card[0] != card[1]) &&         (card[0] + card[1]) % 2 == 0) {       new_cards.push_back((card[0] + card[1]) / 2);     }     sort((card).begin(), (card).end());     int min_difference = card[1] - card[0];     for (int i = 2; i < no_of_cards; i++)       min_difference = min(min_difference, card[i] - card[i - 1]);     int ap_possible = true, new_middle_cards = 0;     for (int i = 1; i < no_of_cards; i++) {       if (card[i] - card[i - 1] != min_difference) {         if (card[i] - card[i - 1] == 2 * min_difference) {           new_middle_cards++;         } else {           ap_possible = false;         }       }     }     if (ap_possible) {       if (min_difference == 0) {         new_cards.push_back(card[0]);       } else if (new_middle_cards == 0) {         new_cards.push_back(card[0] - min_difference);         new_cards.push_back(card[no_of_cards - 1] + min_difference);       } else if (new_middle_cards == 1) {         for (int i = 1; i < no_of_cards; i++)           if (card[i] - card[i - 1] == 2 * min_difference)             new_cards.push_back(card[i - 1] + min_difference);       }     }     sort((new_cards).begin(), (new_cards).end());     printf( %d n , new_cards.size());     for (int i = 0; i < new_cards.size(); i++) printf( %d  , new_cards[i]);     return 0;   }   