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 fun findAns s = let fun findAnsAux nil _ = "YES" | findAnsAux (h :: tl) used = if Array.sub (used, Char.ord h) then "NO" else (Array.update (used, Char.ord h, true); findAnsAux tl used) in findAnsAux (String.explode s) (Array.array (Char.ord #"Z" + 1, false)) end val () = let val s = readStr () val ans = findAns s in print (ans ^ "\n") end