#include <bits/stdc++.h>
using namespace std;
const long long md = 1e9 + 7;
int main() {
  iostream::sync_with_stdio(0);
  cin.tie(0), cout.tie(0);
  string s;
  cin >> s;
  int n = s.length();
  vector<int> cn(26, 0);
  vector<vector<bool>> g(n, vector<bool>(n, 1));
  vector<vector<vector<int>>> us(26,
                                 vector<vector<int>>(n, vector<int>(26, 0)));
  for (int i = 0; i < n; i++) {
    cn[s[0] - 'a']++;
    for (int j = 1; j < n; j++) {
      us[s[0] - 'a'][j][s[j] - 'a']++;
    }
    rotate(s.begin(), s.begin() + 1, s.end());
  }
  long double ans = 0;
  for (int fr = 0; fr < 26; fr++) {
    long double best = 0;
    for (int j = 0; j < n; j++) {
      int good = 0, all = 0;
      for (int sc = 0; sc < 26; sc++) {
        all += us[fr][j][sc];
        good += us[fr][j][sc] == 1;
      }
      if (all && (double)good / all > best) {
        best = (double)good / all;
      }
    }
    ans += cn[fr] * best / n;
  }
  cout << fixed << setprecision(12) << ans << '\n';
  return 0;
}
