open Str

module SI = Set.Make(struct
                      type t = int
                      let compare i j = i - j
                    end)
                    
let read_list f =
  split (regexp " +") (read_line ()) |> List.map f

let () =
  let k = match read_list int_of_string with _ :: x :: _ -> x | _ -> failwith "read" in
  let al = read_list int_of_string in
  let rec iter si =
    if SI.mem k si then true
    else let ns = SI.fold (fun e1 s1 ->
                           SI.fold (fun e2 s2 -> SI.add (abs (e1 - e2)) s2) si s1
                          ) si si in
         if si = ns then false else iter ns
  in 
  (if iter (SI.of_list al) then "POSSIBLE" else "IMPOSSIBLE") |> print_endline
