fun readStr () = let fun scan reader stream = SOME (StringCvt.splitl (not o Char.isSpace) reader (StringCvt.skipWS reader stream)) in valOf (TextIO.scanStream scan TextIO.stdIn) end val () = let fun loop n = ( print (StringCvt.padLeft #"0" 3 (Int.toString n) ^ "\n"); let val res = readStr () in if res = "locked" then loop (n + 1) else ignore () end ) in loop 0 end