#include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define endl '\n' #define all(v) (v).begin(), (v).end() #define uniq(v) (v).erase(unique((v).begin(), (v).end()), (v).end()) typedef long long ll; typedef pair P; typedef unsigned int uint; const int inf = 1000000009; bool solve(int n) { int w[n]; int sum = 0; for (int i = 0; i < n; i++) { int v; scanf("%d", &v); sum += v; w[i] = v; } if (sum % 2 == 1) return false; bool can[sum+1]; memset(can, false, sizeof(can)); can[0] = true; for (int i = 0; i < n; i++) { for (int j = sum; j >= 0; j--) { if (can[j]) can[j+w[i]] = true; } } return can[sum/2]; } int main() { int n; scanf("%d", &n); printf("%s\n", solve(n) ? "possible" : "impossible"); }