# coding: utf-8

# Your code here!

def gcd(a,b):

    while b:

        a,b=b,a%b

    return a



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

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

if n==1:

    if k==a[0]:

        print('POSSIBLE')

    else:

        print('IMPOSSIBLE')

    exit()

g=gcd(a[0],a[1])

mx=max(a)

for i in range(2,n):

    g=gcd(g,a[i])

if k%g==0 and k<=mx:

    print('POSSIBLE')

else:

    print('IMPOSSIBLE')

from functools import reduce

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

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

def gcd(a, b):

    while a != 0:

        a,b=b%a,a

    return b

def lcm(x, y):

    return (x * y)//gcd(x, y)

t=reduce(gcd,a)

if t==1:

    if max(a)>=k:

        print('POSSIBLE')

        exit()

else:

    if k in a:

        print('POSSIBLE')

        exit()

    if k%t==0 and max(a)>=k:

        print('POSSIBLE')

        exit()

print('IMPOSSIBLE')

# coding: utf-8
# Your code here!
def gcd(a, b):
    while b:
        a, b = b, a % b
    return a


n, k = list(map(int, input().split()))
a = list(map(int, input().split()))
if n == 1:
    if k == a[0]:
        print("POSSIBLE")
    else:
        print("IMPOSSIBLE")
    exit()
g = gcd(a[0], a[1])
mx = max(a)
for i in range(2, n):
    g = gcd(g, a[i])
if k % g == 0 and k <= mx:
    print("POSSIBLE")
else:
    print("IMPOSSIBLE")

from functools import reduce

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


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


def lcm(x, y):
    return (x * y) // gcd(x, y)


t = reduce(gcd, a)
if t == 1:
    if max(a) >= k:
        print("POSSIBLE")
        exit()
else:
    if k in a:
        print("POSSIBLE")
        exit()
    if k % t == 0 and max(a) >= k:
        print("POSSIBLE")
        exit()
print("IMPOSSIBLE")

-# coding: utf-8 -# Your code here! -def gcd(a, b): -    while b: -        a, b = b, a % b -    return a - +from functools import reduce -if n == 1: -    if k == a[0]: + + +def gcd(a, b): +    while a != 0: +        a, b = b % a, a +    return b + + +def lcm(x, y): +    return (x * y) // gcd(x, y) + + +t = reduce(gcd, a) +if t == 1: +    if max(a) >= k: -    else: -        print("IMPOSSIBLE") -    exit() -g = gcd(a[0], a[1]) -mx = max(a) -for i in range(2, n): -    g = gcd(g, a[i]) -if k % g == 0 and k <= mx: -    print("POSSIBLE") +        exit() -    print("IMPOSSIBLE") +    if k in a: +        print("POSSIBLE") +        exit() +    if k % t == 0 and max(a) >= k: +        print("POSSIBLE") +        exit() +print("IMPOSSIBLE")