#include #include using namespace std; int main() { int n; cin >> n; int m = 1< b(m); int maxb = 0; for( int i = 0; i < m; i++ ) { cin >> b[i]; maxb = max(maxb, b[i]); } vector sums(maxb+1, 0); for( int i = 0; i < m; i++ ) { sums[b[i]]++; } sums[0]--; bool fine = true; int k = -1; vector a; vector bb(1,0); bb.reserve(m); while( fine ) { k++; if( k > maxb ) break; if( sums[k] < 0 ) { fine = false; break; } if( sums[k] > 0 ) { a.push_back(k); int sz = bb.size(); for( int i = 0; i < sz; i++ ) { int val = bb[i] + k; if( val > maxb ) { fine = false; break; } bb.push_back( val ); sums[val]--; if( sums[val] < 0 ) { fine = false; break; } } k--; } } if( fine ) { for( int x : a ) cout << x << endl; } else cout << "impossible" << endl; return 0; }