#include [[nodiscard]] static inline constexpr const char* solve(const uint_fast32_t N, const std::vector& W) noexcept { const uint_fast32_t sum_W = std::accumulate(W.begin(), W.end(), UINT32_C(0)); if (sum_W & 1) return "impossible"; std::vector dp(sum_W / 2 + 1, false); dp[0] = true; for (uint_fast32_t i = 0; i != N; ++i) for (uint_fast32_t j = sum_W / 2; j >= W[i]; --j) dp[j] = dp[j] | dp[j - W[i]]; if (dp[sum_W / 2]) return "possible"; else return "impossible"; } int main() { std::cin.tie(nullptr); std::ios::sync_with_stdio(false); uint_fast32_t N; std::cin >> N; std::vector W(N); for (auto& w : W) std::cin >> w; std::cout << solve(N, W) << '\n'; return 0; }