#include <bits/stdc++.h>
using namespace std;
int m[30][30][5000];
int main() {
  string str;
  cin >> str;
  vector<int> fq(200);
  for (auto i : str) fq[i]++;
  int N = str.size();
  int tt = 0;
  vector<vector<int>> ch(200, vector<int>(5000));
  for (int x = 0; x < N; x++) {
    for (int y = 0; y < N; y++) {
      m[str[0] - 'a'][str[y] - 'a'][y]++;
    }
    rotate(str.begin(), str.begin() + 1, str.end());
  }
  for (int x = 0; x < N; x++) {
    for (int y = 1; y < N; y++) {
      int fqq = m[str[0] - 'a'][str[y] - 'a'][y];
      if (fqq == 1) {
        ch[str[0]][y]++;
      }
    }
    rotate(str.begin(), str.begin() + 1, str.end());
  }
  for (int x = 'a'; x <= 'z'; x++) {
    tt += *max_element(ch[x].begin(), ch[x].end());
  }
  cout << fixed << setprecision(18) << (tt / (long double)N);
  return 0;
}
