#include #include #include #include #include #include #include #include #include #include #include #include using namespace std; bool dp[101][5010]; int N; int W[101]; int sum; bool check(int num, int psum) { int i; bool flag = false; if (psum == sum/2) return true; if (psum > sum/2) return false; if (num == N) return false; for (i = 0; i <= num; i++) { flag = flag || dp[i][psum]; } if (flag) return false; flag = check(num+1, psum) || check(num+1, psum+W[num]); dp[num][psum] = !flag; return flag; } int main() { int i; cin >> N; sum = 0; for (i = 0; i < N; i++) { cin >> W[i]; sum += W[i]; } if (sum % 2) { cout << "impossible" << endl; return 0; } bool flag = check(0, 0); if (flag) cout << "possible" << endl; else cout << "impossible" << endl; return 0; }