import std.stdio, std.algorithm, std.conv, std.array, std.string, std.math, std.typecons, std.numeric;

void main()
{
    auto nl = readln.split.to!(int[]);
    auto N = nl[0];
    long L = nl[1];
    auto as = readln.split.to!(long[]);

    long l;
    int i, j = N;
    int[] r;
    foreach (a; as) l += a;
    while (as.length > 1) {
        if (l < L) {
            writeln("Impossible");
            return;
        }
        if (as[0] < as[$-1]) {
            l -= as[0];
            as = as[1..$];
            r ~= ++i;
        } else {
            l -= as[$-1];
            as = as[0..$-1];
            r ~= --j;
        }
    }
    writeln("Possible");
    foreach (rr; r) writeln(rr);
}