#include #include #include #include using namespace std; int main(){ long long n; cin >> n; long long p = 1ll< s; while(p--){ int x; cin >> x; s.insert(x); } vector ans; while(n--){ auto v = *prev(s.end()) - *prev(prev(s.end())); ans.push_back(v); int s0 = s.size(); for(auto x : s){ auto it = s.find(x+v); if(it == s.end()){ cout << "impossible" << endl; return 0; } // This can potentially erase x itself when v=0! // Hence RTE. s.erase(it); } int s1 = s.size(); assert(2*s1 == s0); } for(auto x : ans) cout << x << endl; }