import sys



sys.setrecursionlimit(10 ** 7)

f_inf = float('inf')

mod = 10 ** 9 + 7





def gcd(a, b):

    while b != 0:

        a, b = b, a % b

    return a





def resolve():

    n, k = list(map(int, input().split()))

    A = sorted(list(map(int, input().split())))



    if k in set(A):

        print("POSSIBLE")

        exit()



    if k > A[-1]:

        print("IMPOSSIBLE")

        exit()



    if n == 1:

        print("IMPOSSIBLE")

        exit()



    g = A[0]

    for i in range(1, n):

        g = gcd(g, A[i])



    if k % g == 0:

        print("POSSIBLE")

    else:

        print("IMPOSSIBLE")





if __name__ == '__main__':

    resolve()

import sys

from math import gcd



sys.setrecursionlimit(10 ** 7)

input = sys.stdin.readline

f_inf = float('inf')

mod = 10 ** 9 + 7





def resolve():

    n, k = list(map(int, input().split()))

    A = list(map(int, input().split()))



    if k > max(A):

        print("IMPOSSIBLE")

        exit()



    g = A[0]

    for a in A:

        g = gcd(g, a)



    print(("POSSIBLE" if k % g == 0 else "IMPOSSIBLE"))





if __name__ == '__main__':

    resolve()

import sys

sys.setrecursionlimit(10**7)
f_inf = float("inf")
mod = 10**9 + 7


def gcd(a, b):
    while b != 0:
        a, b = b, a % b
    return a


def resolve():
    n, k = list(map(int, input().split()))
    A = sorted(list(map(int, input().split())))
    if k in set(A):
        print("POSSIBLE")
        exit()
    if k > A[-1]:
        print("IMPOSSIBLE")
        exit()
    if n == 1:
        print("IMPOSSIBLE")
        exit()
    g = A[0]
    for i in range(1, n):
        g = gcd(g, A[i])
    if k % g == 0:
        print("POSSIBLE")
    else:
        print("IMPOSSIBLE")


if __name__ == "__main__":
    resolve()

import sys
from math import gcd

sys.setrecursionlimit(10**7)
input = sys.stdin.readline
f_inf = float("inf")
mod = 10**9 + 7


def resolve():
    n, k = list(map(int, input().split()))
    A = list(map(int, input().split()))
    if k > max(A):
        print("IMPOSSIBLE")
        exit()
    g = A[0]
    for a in A:
        g = gcd(g, a)
    print(("POSSIBLE" if k % g == 0 else "IMPOSSIBLE"))


if __name__ == "__main__":
    resolve()

+from math import gcd +input = sys.stdin.readline -def gcd(a, b): -    while b != 0: -        a, b = b, a % b -    return a - - -    A = sorted(list(map(int, input().split()))) -    if k in set(A): -        print("POSSIBLE") -        exit() -    if k > A[-1]: -        print("IMPOSSIBLE") -        exit() -    if n == 1: +    A = list(map(int, input().split())) +    if k > max(A): -    for i in range(1, n): -        g = gcd(g, A[i]) -    if k % g == 0: -        print("POSSIBLE") -    else: -        print("IMPOSSIBLE") +    for a in A: +        g = gcd(g, a) +    print(("POSSIBLE" if k % g == 0 else "IMPOSSIBLE"))