#include using namespace std; using Int = int_fast64_t; using Word = uint_fast64_t; using Int128 = __int128_t; using Word128 = __uint128_t; using VInt = vector; using VVI = vector; using VWord = vector; using VVW = vector; using VS = vector; using VVS = vector; using VB = vector; using VVB = vector; using PII = pair; using PWW = pair; using VPII = vector; using VPWW = vector; #define SZ(x) ((Int)(x).size()) #define UNIQUE(v) v.erase(unique(v.begin(), v.end()), v.end()) #define rep(i,n) for(Int i=0, i##_len=(n); i> n; VInt w(n); rep(i,n) cin >> w[i]; Int sum = accumulate(ALL(w),0L); if (sum & 1) { cout << "impossible\n"; return 0; } bool dp[10001]; dp[0] = true; rep(i,n) { for (Int j = sum / 2; w[i] - 1 < j; j--) { dp[j] |= dp[j - w[i]]; } } if (dp[sum / 2]) cout << "possible\n"; else cout << "impossible\n"; return 0; }