#include #define rep(i,n) for(int i=(0);i<(n);i++) using namespace std; typedef long long ll; typedef unsigned long long ull; template bool chmax(T &a, const T &b) { if (a bool chmin(T &a, const T &b) { if (a>b) { a=b; return 1; } return 0; } int main(){ cin.tie(0); ios::sync_with_stdio(false); int n; cin >> n; int sm = 0; vector w(n); rep(i, n) { cin >> w[i]; sm += w[i]; } if(sm % 2 == 1){ cout << "impossible" << endl; exit(0); } int max_w = 10101; bool dp[2][max_w]; rep(i, 2) rep(j, max_w) dp[i][j] = false; dp[0][0] = true; rep(i, n) { rep(j, max_w) dp[(i+1)%2][j] = false; rep(j, max_w){ dp[(i+1)%2][j] |= dp[i%2][j]; if(j-w[i] >= 0) dp[(i+1)%2][j] |= dp[i%2][j-w[i]]; } } if(dp[n%2][sm/2]){ cout << "possible" << endl; }else{ cout << "impossible" << endl; } }