main = do
  [n, k] <- map read . words <$> getLine
  as <- map read . words <$> getLine
  let (bs, l) = f (as, k) $ prs k 2
  putStr $ solve bs l
 
prs k p
  | k < p = []
  | k `mod` p == 0 = p : (prs (k `div` p) p)
  | otherwise = prs k (p+1)
 
solve as k
  | maximum as < k = "IMPOSSIBLE"
  | odd k && all even as = "IMPOSSIBLE"
  | otherwise = "POSSIBLE"
 
f (as, k) [] = (as, k)
f (as, k) (p:ps)
  | all ((`mod` p) == 0) = f (map (`div` p) as, k `div` p)
  | otherwise = f (as, k) ps