#ifndef _GLIBCXX_NO_ASSERT #include #endif #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #if __cplusplus >= 201103L #include #include #include #include #include #include #include #include #endif #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #if __cplusplus >= 201103L #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #endif using namespace std; using i64 = int64_t; using vi = vector; using vvi = vector; constexpr i64 MOD = 1000000000; constexpr int nax = 10001; int weights[nax]; int main() { int n; cin >> n; int sum = 0; weights[0] = 1; for (int i = 0; i < n; i++) { int w; cin >> w; sum += w; for (int i = nax - 1; i >= 0; i--) { if (weights[i]) { int j = i + w; if (j < nax) { weights[j] = 1; } } } } if (sum % 2 == 0 && weights[sum / 2]) { cout << "possible" << endl; } else { cout << "impossible" << endl; } }