Buggy python submission (verdict: Runtime Error):
from functools import reduce
from math import gcd

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

m = max(an)
g = reduce(lambda x, y: gcd(x, y), an)

if K <=m and K % g == 0:
    print ('POSSIBLE')
else:
    print ('IMPOSSIBLE')

Fixed submission:
from functools import reduce
from fractions import gcd

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

m = max(an)
g = reduce(lambda x, y: gcd(x, y), an)

if K <=m and K % g == 0:
    print ('POSSIBLE')
else:
    print ('IMPOSSIBLE')

Buggy python submission (verdict: Runtime Error):
from functools import reduce
from math import gcd

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

m = max(an)
g = reduce(lambda x, y: gcd(x, y), an)

if K <=m and K % g == 0:
    print ('POSSIBLE')
else:
    print ('IMPOSSIBLE')

Fixed submission:
from functools import reduce
from fractions import gcd

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

m = max(an)
g = reduce(lambda x, y: gcd(x, y), an)

if K <=m and K % g == 0:
    print ('POSSIBLE')
else:
    print ('IMPOSSIBLE')

Buggy python submission (verdict: Runtime Error):
from itertools import combinations
from math import gcd

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

m = max(an)
g = max(map(lambda x:gcd(x[0],x[1]), combinations(an, 2)))

if K <=m and k % g == 0:
    print ('POSSIBLE')
else:
    print ('IMPOSSIBLE')

Fixed submission:
from functools import reduce
from fractions import gcd

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

m = max(an)
g = reduce(lambda x, y: gcd(x, y), an)

if K <=m and K % g == 0:
    print ('POSSIBLE')
else:
    print ('IMPOSSIBLE')

Buggy python submission (verdict: Runtime Error):
from itertools import combinations
from math import gcd

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

m = max(an)
g = max(map(lambda x:gcd(x[0],x[1]), combinations(an, 2)))

if K <=m and k % g == 0:
    print 'POSSIBLE'
else:
    print 'IMPOSSIBLE'

Fixed submission:
from functools import reduce
from fractions import gcd

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

m = max(an)
g = reduce(lambda x, y: gcd(x, y), an)

if K <=m and K % g == 0:
    print ('POSSIBLE')
else:
    print ('IMPOSSIBLE')

Buggy python submission (verdict: Time Limit Exceeded):
from itertools import combinations

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

an = sorted(an,reverse=True)
if K in an:
    print('POSSIBLE')
    exit()

visited = {}
def dfs(a, b):
    d = a - b 
    if K == d:
        return 1
    if d in an:
        return 0
    visited[(a,b)]=True
    for it in combinations(an + [d], 2):
        if visited.get((it[0],it[1]), False):
            continue
        if dfs(it[0], it[1]) == 1:
            return 1
    return 0
        
comb=combinations(an, 2)
s=sum([dfs(it[0], it[1]) for it in comb])
if s == 0:
    print('IMPOSSIBLE')
else:
    print('POSSIBLE')

Fixed submission:
from functools import reduce
from fractions import gcd

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

m = max(an)
g = reduce(lambda x, y: gcd(x, y), an)

if K <=m and K % g == 0:
    print ('POSSIBLE')
else:
    print ('IMPOSSIBLE')

Buggy python submission (verdict: Time Limit Exceeded):
from itertools import combinations

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

if K in an:
    print('POSSIBLE')
    exit()

while True:
    comb=combinations(an, 2)
    prean = an[:]
    for it in comb:
        a = abs(it[0] - it[1])
        if a in an:
            continue
        if a == K:
            print('POSSIBLE')
            exit()
        an.append(a)
    if len(an) == len(prean):
        print('IMPOSSIBLE')
        break

Fixed submission:
from functools import reduce
from fractions import gcd

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

m = max(an)
g = reduce(lambda x, y: gcd(x, y), an)

if K <=m and K % g == 0:
    print ('POSSIBLE')
else:
    print ('IMPOSSIBLE')

Buggy python submission (verdict: Time Limit Exceeded):
from itertools import combinations

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

if K in an:
    print('POSSIBLE')
    exit()

while True:
    comb=combinations(an,2)
    prean = an[:]
    for it in comb:
        a = abs(it[0] - it[1])
        if a == K:
            print('POSSIBLE')
            exit()
        if a not in an:
          an.append(a)
    if len(an) == len(prean):
        print('IMPOSSIBLE')
        break

Fixed submission:
from functools import reduce
from fractions import gcd

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

m = max(an)
g = reduce(lambda x, y: gcd(x, y), an)

if K <=m and K % g == 0:
    print ('POSSIBLE')
else:
    print ('IMPOSSIBLE')