Buggy python submission (verdict: Runtime Error):
# coding: utf-8
# Your code here!
import math
from functools import reduce

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

if max(l)<K:
    print("IMPOSSIBLE")
else:
    if K%functools.reduce(math.gcd, l)==0:
        print("POSSIBLE")
    else:
        print("IMPOSSIBLE")

Fixed submission:
# coding: utf-8
# Your code here!
from fractions import gcd
from functools import reduce

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

if max(l)<K:
    print("IMPOSSIBLE")
else:
    if K%reduce(gcd, l)==0:
        print("POSSIBLE")
    else:
        print("IMPOSSIBLE")

Buggy python submission (verdict: Runtime Error):
# coding: utf-8
# Your code here!
import math
from functools import reduce

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

if max(l)<K:
    print("IMPOSSIBLE")
else:
    if K%reduce(math.gcd, l)==0:
        print("POSSIBLE")
    else:
        print("IMPOSSIBLE")

Fixed submission:
# coding: utf-8
# Your code here!
from fractions import gcd
from functools import reduce

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

if max(l)<K:
    print("IMPOSSIBLE")
else:
    if K%reduce(gcd, l)==0:
        print("POSSIBLE")
    else:
        print("IMPOSSIBLE")

Buggy python submission (verdict: Runtime Error):
# coding: utf-8
# Your code here!
N,K=map(int,input().split())
l=list(map(int,input().split()))

if max(l)<K:
    print("IMPOSSIBLE")
    exit()

temp=[]
prev_l=[-1]

while prev_l!=l: #temp <=> l
    temp.clear()
    prev_l.clear()
    prev_l=prev_l+l
    for i in range(len(l)-1):
        for j in range(i+1,len(l)):
            temp.append(abs(l[i]-l[j]))
    l=l+temp
    l=list((set(l)))
    for i in range(len(l))[::-1]:
        if l[i]>K:
            for j in range(i)[::-1]:
                if (l[i]-K)%l[j]==0:
                    print("POSSIBLE")
                    exit()
        elif l[i]==K:
            print("POSSIBLE")
            exit()
        else:
            break
    
print("IMPOSSIBLE")


Fixed submission:
# coding: utf-8
# Your code here!
from fractions import gcd
from functools import reduce

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

if max(l)<K:
    print("IMPOSSIBLE")
else:
    if K%reduce(gcd, l)==0:
        print("POSSIBLE")
    else:
        print("IMPOSSIBLE")

Buggy python submission (verdict: Time Limit Exceeded):
# coding: utf-8
# Your code here!
N,K=map(int,input().split())
l=list(map(int,input().split()))

if max(l)<K:
    print("IMPOSSIBLE")
    exit()

temp=[]
prev_l=[-1]

while prev_l!=l: #temp <=> l
    temp.clear()
    prev_l.clear()
    prev_l=prev_l+l
    for i in range(len(l)-1):
        for j in range(i+1,len(l)):
            temp.append(abs(l[i]-l[j]))
    l=l+temp
    l=list((set(l)))
    for i in range(len(l))[::-1]:
        if l[i]>K:
            for j in range(i)[::-1]:
                if (l[i]-K)%l[j]==0:
                    print("POSSIBLE")
                    exit()
        elif l[i]==K:
            print("POSSIBLE")
            exit()
        else:
            break
    
print("IMPOSSIBLE")

Fixed submission:
# coding: utf-8
# Your code here!
from fractions import gcd
from functools import reduce

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

if max(l)<K:
    print("IMPOSSIBLE")
else:
    if K%reduce(gcd, l)==0:
        print("POSSIBLE")
    else:
        print("IMPOSSIBLE")

Buggy python submission (verdict: Time Limit Exceeded):
# coding: utf-8
# Your code here!
N,K=map(int,input().split())
l=list(map(int,input().split()))

if max(l)<K:
    print("IMPOSSIBLE")
    exit()

temp=[]
prev_l=[-1]
while prev_l!=l: #temp <=> l <=> prev_l
    temp.clear()
    prev_l.clear()
    prev_l=prev_l+l
    for i in range(len(l)-1):
        for j in range(i+1,len(l)):
            temp.append(abs(l[i]-l[j]))
    l=l+temp
    if 1 in l or K in l:
        print("POSSIBLE")
        exit()
    l=list((set(l)))
    #print(l)
    
print("IMPOSSIBLE")

Fixed submission:
# coding: utf-8
# Your code here!
from fractions import gcd
from functools import reduce

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

if max(l)<K:
    print("IMPOSSIBLE")
else:
    if K%reduce(gcd, l)==0:
        print("POSSIBLE")
    else:
        print("IMPOSSIBLE")

Buggy python submission (verdict: Time Limit Exceeded):
# coding: utf-8
# Your code here!
N,K=map(int,input().split())
l=list(map(int,input().split()))

if max(l)<K:
    print("IMPOSSIBLE")
    exit()

temp=[]
prev_l=[-1]
while prev_l!=l: #temp <=> l <=> prev_l
    temp.clear()
    prev_l.clear()
    prev_l=prev_l+l
    for i in range(len(l)-1):
        for j in range(i+1,len(l)):
            temp.append(abs(l[i]-l[j]))
    l=l+temp
    if K in l:
        print("POSSIBLE")
        exit()
    l=list((set(l)))
    #print(l)
    
print("IMPOSSIBLE")

Fixed submission:
# coding: utf-8
# Your code here!
from fractions import gcd
from functools import reduce

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

if max(l)<K:
    print("IMPOSSIBLE")
else:
    if K%reduce(gcd, l)==0:
        print("POSSIBLE")
    else:
        print("IMPOSSIBLE")

Buggy python submission (verdict: Time Limit Exceeded):
# coding: utf-8
# Your code here!
N,K=map(int,input().split())

l=list(map(int,input().split()))
new=[]

for i in range(N):
    for j in range(i+1,N):
        if l[i]-l[j]==K:
            print("POSSIBLE")
            break
        new.append(abs(l[i]-l[j]))

Key=True

try:
    while Key:
        temp=[]
        for i in range(len(l)):
            for j in range(len(new)):
                if l[i]-new[j]==K:
                    print("POSSIBLE")
                    Key=False
                    break
                temp.append(abs(l[i]-new[j]))
        l=l+new
        new.clear()
        new+=temp
except TimeoutError:
    print("IMPOSSIBLE")
    



'''
while Key:
    print(new)
    temp=[]
    for i in range(len(l)):
        for j in range(len(new)):
            if l[i]-new[j]==K:
                print("POSSIBLE")
                Key=False
                break
            temp.append(abs(l[i]-new[j]))
    l=l+new
    new.clear()
    new+=temp
'''
            

    
    

Fixed submission:
# coding: utf-8
# Your code here!
from fractions import gcd
from functools import reduce

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

if max(l)<K:
    print("IMPOSSIBLE")
else:
    if K%reduce(gcd, l)==0:
        print("POSSIBLE")
    else:
        print("IMPOSSIBLE")