n,l,*a=list(map(int,open(0).read().split()))

i=m=0

for j,(x,y)in enumerate(zip(a,a[1:]),1):

  if x+y>m:

    m=x+y

    i=j

if m<l:

  print('Impossible')

else:

  print('Possible')

  print((*list(range(1,i))))

  print((*list(range(n-1,i,-1))))

  print(i)
n,l,*a=map(int,open(i:=0).read().split())

for a,b in zip(a,a[1:]):i+=1;a+b>=l>exit(print('Possible',*range(1,i),*range(n-1,i-1,-1)))

print('Impossible')

n, l, *a = list(map(int, open(0).read().split()))
i = m = 0
for j, (x, y) in enumerate(zip(a, a[1:]), 1):
    if x + y > m:
        m = x + y
        i = j
if m < l:
    print("Impossible")
else:
    print("Possible")
    print((*list(range(1, i))))
    print((*list(range(n - 1, i, -1))))
    print(i)

n, l, *a = map(int, open(i := 0).read().split())
for a, b in zip(a, a[1:]):
    i += 1
    a + b >= l > exit(print("Possible", *range(1, i), *range(n - 1, i - 1, -1)))
print("Impossible")

-n, l, *a = list(map(int, open(0).read().split())) -i = m = 0 -for j, (x, y) in enumerate(zip(a, a[1:]), 1): -    if x + y > m: -        m = x + y -        i = j -if m < l: -    print("Impossible") -else: -    print("Possible") -    print((*list(range(1, i)))) -    print((*list(range(n - 1, i, -1)))) -    print(i) +n, l, *a = map(int, open(i := 0).read().split()) +for a, b in zip(a, a[1:]): +    i += 1 +    a + b >= l > exit(print("Possible", *range(1, i), *range(n - 1, i - 1, -1))) +print("Impossible")