## https://yukicoder.me/problems/no/852 MAX_VALUE = 10 ** 18 def main(): S = input() min_alphabet_base = [MAX_VALUE] * 26 answer = 0 for i in range(len(S)): s = S[i] s_value = ord(s) - ord("a") min_alphabet_base[s_value] = i # 種類数計算 min_alphabets = min_alphabet_base.copy() min_alphabets.sort() max_spiceses = 0 for k in range(len(min_alphabets)): if min_alphabets[k] < MAX_VALUE: max_spiceses += 1 prev_ = -1 for k in range(len(min_alphabets)): i0 = min_alphabets[k] if i0 == MAX_VALUE: break answer += (i0 - prev_) * (max_spiceses - k) prev_ = i0 n0 = (len(S) * (len(S) + 1)) // 2 print(answer / n0) if __name__ == "__main__": main()