import sys

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

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

a.sort()

if a[-1] < k:

    print('IMPOSSIBLE')

    sys.exit(0)



seta = set(a)

if k in seta:

    print('POSSIBLE')

    sys.exit(0)



def gojoho(l, s):

    return s if l % s == 0 else gojoho(s, l % s)



koubaisu = gojoho(a[1], a[0])

for i in a:

    koubaisu = gojoho(i, koubaisu)



if k % koubaisu == 0:

    print('POSSIBLE')

else:

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

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

a.sort()



def f(l, s):

    return s if l % s == 0 else f(s, l % s)



z = f(a[-1], a[0])

for i in a:

    z = f(i, z)

if a[-1] >= k and k % z == 0:

    print('POSSIBLE')

else:

    print('IMPOSSIBLE')
import sys

n, k = list(map(int, input().split()))
a = list(map(int, input().split()))
a.sort()
if a[-1] < k:
    print("IMPOSSIBLE")
    sys.exit(0)
seta = set(a)
if k in seta:
    print("POSSIBLE")
    sys.exit(0)


def gojoho(l, s):
    return s if l % s == 0 else gojoho(s, l % s)


koubaisu = gojoho(a[1], a[0])
for i in a:
    koubaisu = gojoho(i, koubaisu)
if k % koubaisu == 0:
    print("POSSIBLE")
else:
    print("IMPOSSIBLE")

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


def f(l, s):
    return s if l % s == 0 else f(s, l % s)


z = f(a[-1], a[0])
for i in a:
    z = f(i, z)
if a[-1] >= k and k % z == 0:
    print("POSSIBLE")
else:
    print("IMPOSSIBLE")

-import sys - -if a[-1] < k: -    print("IMPOSSIBLE") -    sys.exit(0) -seta = set(a) -if k in seta: -    print("POSSIBLE") -    sys.exit(0) -def gojoho(l, s): -    return s if l % s == 0 else gojoho(s, l % s) +def f(l, s): +    return s if l % s == 0 else f(s, l % s) -koubaisu = gojoho(a[1], a[0]) +z = f(a[-1], a[0]) -    koubaisu = gojoho(i, koubaisu) -if k % koubaisu == 0: +    z = f(i, z) +if a[-1] >= k and k % z == 0: