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) || (sum ws' < e) then "impossible" else resolve e ws' resolve e ws = resolve' [(0, ws)] where resolve' :: [(Int, [Int])] -> String resolve' [] = "impossible" resolve' ((a,bs):ps) | a == e = "possible" | null bs = resolve' ps | otherwise = resolve' ((a + (head bs), tail bs):(a, tail bs):ps)