import Data.List (nub)

main:: IO ()
main = do
    [_,k] <- (map read . words) <$> getLine
    as <- (map read . words) <$> getLine
    putStrLn $ solve k as

-- |
--
-- >>> solve 7 [9,3,4]
-- "POSSIBLE"
--
-- >>> solve 5 [6,9,3]
-- "IMPOSSIBLE"
solve :: Int -> [Int] -> String
solve k as
  | k `elem` as = "POSSIBLE"
  | n == n'     = "IMPOSSIBLE"
  | otherwise   = solve k as'
  where
    as' = nub $ getNew as [] ++ as
    n = length as
    n' = length as'

getNew :: [Int] -> [Int] -> [Int]
getNew [] ys = ys
getNew (x0:xs) ys = getNew xs ([abs(x0 - x) | x <- xs] ++ ys)


-- 9 4 3
-- 5 6 1
-- --
-- 9 6 5 4 3 1
-- 3 1 2 3 5 4
-- --
-- 9 6 5 4 3 2 1
