N, K = list(map(int, input().split()))

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



def gcd(n, m) :

    n, m = max(n, m), min(n, m)

    if m == 0 :

        return n

    return gcd(m, n % m)



dis = A[0]

for a in A :

    dis = gcd(dis, a)



for a in A :

    if a < K :

        continue

    if (a - K) % dis == 0 :

        print('POSSIBLE')

        break

else :

    print('IMPOSSIBLE')
N, K = list(map(int, input().split()))

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



def gcd(n, m):

    if m == 0:

        return n

    return gcd(m, n % m)



G = A[0]

for a in A:

    G = gcd(G, a)



for a in A:

    if K <= a and (a - K) % G == 0:

        print('POSSIBLE')

        exit()



print('IMPOSSIBLE')

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


def gcd(n, m):
    n, m = max(n, m), min(n, m)
    if m == 0:
        return n
    return gcd(m, n % m)


dis = A[0]
for a in A:
    dis = gcd(dis, a)
for a in A:
    if a < K:
        continue
    if (a - K) % dis == 0:
        print("POSSIBLE")
        break
else:
    print("IMPOSSIBLE")

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


def gcd(n, m):
    if m == 0:
        return n
    return gcd(m, n % m)


G = A[0]
for a in A:
    G = gcd(G, a)
for a in A:
    if K <= a and (a - K) % G == 0:
        print("POSSIBLE")
        exit()
print("IMPOSSIBLE")

-    n, m = max(n, m), min(n, m) -dis = A[0] +G = A[0] -    dis = gcd(dis, a) +    G = gcd(G, a) -    if a < K: -        continue -    if (a - K) % dis == 0: +    if K <= a and (a - K) % G == 0: -        break -else: -    print("IMPOSSIBLE") +        exit() +print("IMPOSSIBLE")