# AGC002C - Knot Puzzle

def main():

    N, L = tuple(map(int, input().split()))

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

    B = [i + j for i, j in zip(A, A[1:])]

    for i, (a, b) in enumerate(zip(A, A[1:]), 1):

        if a + b >= L:

            ans = [i for i in range(1, i)]

            ans += [i for i in range(N - 1, i, -1)] + [i]

            print("Possible")

            print(*ans, sep="\n")

            break

    else:

        print("Impossible")





if __name__ == "__main__":

    main()

# AGC002C - Knot Puzzle

def main():

    N, L, *A = list(map(int, open(0).read().split()))

    B = [i + j for i, j in zip(A, A[1:])]

    x = max(B)

    if x >= L:  # at least one pair must be equal or greater than L

        idx = B.index(x) + 1

        # keep the biggest one until the end

        ans = [i for i in range(1, idx)] + [i for i in range(N - 1, idx, -1)] + [idx]

        print("Possible")

        print(("\n".join(map(str, ans))))

    else:

        print("Impossible")





if __name__ == "__main__":

    main()
# AGC002C - Knot Puzzle
def main():
    N, L = tuple(map(int, input().split()))
    A = tuple(map(int, input().split()))
    B = [i + j for i, j in zip(A, A[1:])]
    for i, (a, b) in enumerate(zip(A, A[1:]), 1):
        if a + b >= L:
            ans = [i for i in range(1, i)]
            ans += [i for i in range(N - 1, i, -1)] + [i]
            print("Possible")
            print(*ans, sep="\n")
            break
    else:
        print("Impossible")


if __name__ == "__main__":
    main()

# AGC002C - Knot Puzzle
def main():
    N, L, *A = list(map(int, open(0).read().split()))
    B = [i + j for i, j in zip(A, A[1:])]
    x = max(B)
    if x >= L:  # at least one pair must be equal or greater than L
        idx = B.index(x) + 1
        # keep the biggest one until the end
        ans = [i for i in range(1, idx)] + [i for i in range(N - 1, idx, -1)] + [idx]
        print("Possible")
        print(("\n".join(map(str, ans))))
    else:
        print("Impossible")


if __name__ == "__main__":
    main()

-    N, L = tuple(map(int, input().split())) -    A = tuple(map(int, input().split())) +    N, L, *A = list(map(int, open(0).read().split())) -    for i, (a, b) in enumerate(zip(A, A[1:]), 1): -        if a + b >= L: -            ans = [i for i in range(1, i)] -            ans += [i for i in range(N - 1, i, -1)] + [i] -            print("Possible") -            print(*ans, sep="\n") -            break +    x = max(B) +    if x >= L:  # at least one pair must be equal or greater than L +        idx = B.index(x) + 1 +        # keep the biggest one until the end +        ans = [i for i in range(1, idx)] + [i for i in range(N - 1, idx, -1)] + [idx] +        print("Possible") +        print(("\n".join(map(str, ans))))