# coding:utf-8



INF = float('inf')





def inpl(): return list(map(int, input().split()))





N, L = inpl()

A = inpl()



tmp = 0

connect = False

knot = None

for i in range(N):

    if A[i] >= L:

        knots = i

        break



if knot is None:

    for i in range(N - 1):

        if sum(A[i:i + 2]) >= L:

            knot = i

            connect = True

            break



if knot is None:

    print('Impossible')

else:

    print('Possible')

    for i in range(N - 1):

        if i == knot:

            break

        else:

            print((i + 1))



    for i in range(N - 2, -1, -1):

        if i == knot:

            break

        else:

            print((i + 1))

    if connect:

        print((knot + 1))

# coding:utf-8



import sys



INF = float('inf')

MOD = 10 ** 9 + 7



def LI(): return [int(x) for x in sys.stdin.readline().split()]

def LI_(): return [int(x) - 1 for x in sys.stdin.readline().split()]

def LF(): return [float(x) for x in sys.stdin.readline().split()]

def LS(): return sys.stdin.readline().split()

def II(): return int(sys.stdin.readline())

def SI(): return eval(input())





def main():

    n, l = LI()

    A = LI()



    for i in range(n - 1):

        if A[i] + A[i + 1] >= l:

            k = i

            print('Possible')

            break

    else:

        print('Impossible')

        return 0



    for i in range(k):

        print((i + 1))



    for i in range(k, n - 1)[::-1]:

        print((i + 1))



    return 1





main()

# coding:utf-8
INF = float("inf")


def inpl():
    return list(map(int, input().split()))


N, L = inpl()
A = inpl()
tmp = 0
connect = False
knot = None
for i in range(N):
    if A[i] >= L:
        knots = i
        break
if knot is None:
    for i in range(N - 1):
        if sum(A[i : i + 2]) >= L:
            knot = i
            connect = True
            break
if knot is None:
    print("Impossible")
else:
    print("Possible")
    for i in range(N - 1):
        if i == knot:
            break
        else:
            print((i + 1))
    for i in range(N - 2, -1, -1):
        if i == knot:
            break
        else:
            print((i + 1))
    if connect:
        print((knot + 1))

# coding:utf-8
import sys

INF = float("inf")
MOD = 10**9 + 7


def LI():
    return [int(x) for x in sys.stdin.readline().split()]


def LI_():
    return [int(x) - 1 for x in sys.stdin.readline().split()]


def LF():
    return [float(x) for x in sys.stdin.readline().split()]


def LS():
    return sys.stdin.readline().split()


def II():
    return int(sys.stdin.readline())


def SI():
    return eval(input())


def main():
    n, l = LI()
    A = LI()
    for i in range(n - 1):
        if A[i] + A[i + 1] >= l:
            k = i
            print("Possible")
            break
    else:
        print("Impossible")
        return 0
    for i in range(k):
        print((i + 1))
    for i in range(k, n - 1)[::-1]:
        print((i + 1))
    return 1


main()

+import sys + +MOD = 10**9 + 7 -def inpl(): -    return list(map(int, input().split())) +def LI(): +    return [int(x) for x in sys.stdin.readline().split()] -N, L = inpl() -A = inpl() -tmp = 0 -connect = False -knot = None -for i in range(N): -    if A[i] >= L: -        knots = i -        break -if knot is None: -    for i in range(N - 1): -        if sum(A[i : i + 2]) >= L: -            knot = i -            connect = True +def LI_(): +    return [int(x) - 1 for x in sys.stdin.readline().split()] + + +def LF(): +    return [float(x) for x in sys.stdin.readline().split()] + + +def LS(): +    return sys.stdin.readline().split() + + +def II(): +    return int(sys.stdin.readline()) + + +def SI(): +    return eval(input()) + + +def main(): +    n, l = LI() +    A = LI() +    for i in range(n - 1): +        if A[i] + A[i + 1] >= l: +            k = i +            print("Possible") -if knot is None: -    print("Impossible") -else: -    print("Possible") -    for i in range(N - 1): -        if i == knot: -            break -        else: -            print((i + 1)) -    for i in range(N - 2, -1, -1): -        if i == knot: -            break -        else: -            print((i + 1)) -    if connect: -        print((knot + 1)) +    else: +        print("Impossible") +        return 0 +    for i in range(k): +        print((i + 1)) +    for i in range(k, n - 1)[::-1]: +        print((i + 1)) +    return 1 + + +main()