import Data.List main = do n <- readLn :: IO Int ws <- (map read . words) <$> getLine let e = (sum ws) `div` 2 let ws' = filter (<= e) ws putStrLn $ if odd $ sum ws then "impossible" else resolve e $ reverse $ sort ws' resolve e ws = resolve' [(0, ws)] where resolve' :: [(Int, [Int])] -> String resolve' [] = "impossible" resolve' ((a,bs):ps) | a == e = "possible" | null bs || sum bs < (e - a) = resolve' ps | a + (head bs) > e = resolve' ((a, tail bs):ps) | otherwise = resolve' ((a + (head bs), tail bs):(a, tail bs):ps)