fun readInt () = valOf (TextIO.scanStream (Int.scan StringCvt.DEC) TextIO.stdIn) val () = let val n = readInt () val gd_s = List.tabulate (n, fn _ => (readInt (), readInt ())) val (_, (maxIndex, maxExp)) = List.foldl (fn ((g, d), (i, (accI, accMax))) => if accMax < g - 30000 * d then (i + 1, (i, g - 30000 * d)) else (i + 1, (accI, accMax))) (1, (0, 0)) gd_s val maxString = String.concat (List.tabulate (6, fn _ => Int.toString maxIndex ^ "\n")) val ans = if 30000 * 100 <= maxExp * 6 then "YES\n" ^ maxString else "NO\n" in print ans end