#include using namespace std; #define REP(i,n) for(int i=0; i<(n); i++) #define REP2(i,x,n) for(int i=x; i<(n); i++) #define ALL(n) begin(n),end(n) struct cww{cww(){ios::sync_with_stdio(false);cin.tie(0);}}star; vector> visited( 100 + 1, vector( 10000 + 1, -1 ) ); vector W; int N, total; bool dfs( int i, int sum ) { if( i == N ) { return sum == total / 2 && total % 2 == 0 ? 1 : 0; } if( visited[ i ][ sum ] >= 0 ) { return visited[ i ][ sum ]; } if( dfs( i + 1, sum ) || dfs( i + 1, sum + W[ i ] ) ) { visited[ i ][ sum ] = 1; return visited[ i ][ sum ]; } visited[ i ][ sum ] = 0; return visited[ i ][ sum ]; } int main() { cin >> N; W.resize( N ); for( auto &x : W ) { cin >> x; } total = accumulate( ALL( W ), 0 ); cout << ( dfs( 0, 0 ) ? "possible" : "impossible" ) << endl; return 0; }