#include #include #include #include using namespace std; int main(){ long long n; cin >> n; long long p = 1ll< s(p), cur{0}; cur.reserve(p); for(auto&x : s) cin >> x; sort(begin(s), end(s)); vector ans; int i = 0; for(auto x : s){ if(i < cur.size() && x == cur[i]){ ++i; continue; } if(i < cur.size() && cur[i] < x){ cout << "impossible\n"; return 0; } // Add x to the answer. ans.push_back(x); cur.reserve(2*cur.size()); for(auto y : cur) cur.push_back(y+x); sort(begin(cur), end(cur)); //assert(*it == x); // Fails because WA soluttion. ++i; } if(ans.size() != n){ cout << "impossible\n"; return 0; } for(auto x : ans) cout << x << endl; }