import Data.List import Data.Bool main = getContents >>= putStrLn . bool "impossible" "possible" . dave . reverse . sort . map read . tail . words dave :: [Int] -> Bool dave ws = if odd (sum ws) then False else dave 0 0 ws where maxw = div (sum ws) 2 dave l r [] = if l==r then True else False dave l r (w:ws) | l>maxw || r>maxw = False | otherwise = dave (l+w) r ws || dave l (r+w) ws