def findGCD(a:int, b:int) -> int:

    # バリデーション　a,bは0以上

    if a <= 0:

        raise ValueError("aは0より大きくなければいけません。(a:{})".format(a))

    elif b <= 0:

        raise ValueError("bは0より大きくなければいけません。(b:{})".format(b))

    

    # ユークリッドの互除法

    while 1:

        if a%b == 0:

            return b

        else:

            a = a%b

        

        if b%a == 0:

            return a

        else:

            b = b%a

            

from functools import reduce



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

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





gcd = reduce(findGCD, a)



if k % gcd == 0 and k <= max(a):

    print("POSSIBLE")

else:

    print("IMPOSSIBLE")
def findGCD(a:int, b:int) -> int:

    # ユークリッドの互除法

    while 1:

        if a%b == 0:

            return b

        else:

            a = a%b

        

        if b%a == 0:

            return a

        else:

            b = b%a

            

from functools import reduce



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

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





gcd = reduce(findGCD, a)



if k % gcd == 0 and k <= max(a):

    print("POSSIBLE")

else:

    print("IMPOSSIBLE")
def findGCD(a: int, b: int) -> int:
    # バリデーション　a,bは0以上
    if a <= 0:
        raise ValueError("aは0より大きくなければいけません。(a:{})".format(a))
    elif b <= 0:
        raise ValueError("bは0より大きくなければいけません。(b:{})".format(b))
    # ユークリッドの互除法
    while 1:
        if a % b == 0:
            return b
        else:
            a = a % b
        if b % a == 0:
            return a
        else:
            b = b % a


from functools import reduce

n, k = list(map(int, input().split()))
a = list(map(int, input().split()))
gcd = reduce(findGCD, a)
if k % gcd == 0 and k <= max(a):
    print("POSSIBLE")
else:
    print("IMPOSSIBLE")

def findGCD(a: int, b: int) -> int:
    # ユークリッドの互除法
    while 1:
        if a % b == 0:
            return b
        else:
            a = a % b
        if b % a == 0:
            return a
        else:
            b = b % a


from functools import reduce

n, k = list(map(int, input().split()))
a = list(map(int, input().split()))
gcd = reduce(findGCD, a)
if k % gcd == 0 and k <= max(a):
    print("POSSIBLE")
else:
    print("IMPOSSIBLE")

-    # バリデーション　a,bは0以上 -    if a <= 0: -        raise ValueError("aは0より大きくなければいけません。(a:{})".format(a)) -    elif b <= 0: -        raise ValueError("bは0より大きくなければいけません。(b:{})".format(b))