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 val abcString = readStr () val abc = List.map (fn c => valOf (Int.fromString (Char.toString c))) (String.explode abcString) val max = List.foldl (fn (n, acc) => Int.max(n, acc)) (List.hd abc) abc val min = List.foldl (fn (n, acc) => Int.min(n, acc)) (List.hd abc) abc val ans = max - min in print (Int.toString ans ^ "\n") end