import qualified Data.ByteString.Char8 as BS
import Data.Maybe

main :: IO ()
main = do
  [n, l] <- map read . words <$> getLine
  a <- zip [1..n] . map (fst . fromJust . BS.readInt) . BS.words <$> BS.getLine
  let
    f [_] = []
    f ((i, x):(j, y):xs) = if x + y >= l then i : f ((j, y):xs) else f ((j, y):xs)
    po = f a
  if null po
    then putStrLn "Impossible"
    else do
      putStrLn "Possible"
      let x = head po
      putStr $ unlines $ map show $ [1..x-1] ++ reverse [x+1..n-1] ++ [x]
