fun readInt () = valOf (TextIO.scanStream (Int.scan StringCvt.DEC) TextIO.stdIn) fun findAns n k = let val numerator = List.foldl (fn (s, acc) => s + acc) (LargeInt.fromInt 0) (List.tabulate (n, fn i => (LargeInt.fromInt (i + 1)) * (LargeInt.fromInt k))) val denominator = ((LargeInt.fromInt n) + (LargeInt.fromInt 1)) * (LargeInt.fromInt k) in (Real.fromLargeInt numerator) / (Real.fromLargeInt) denominator end val () = let val n = readInt () val k = readInt () val ans = findAns n k in print (Real.toString ans ^ "\n") end