#include <bits/stdc++.h>
using namespace std;
int main() {
string s;
cin >> s;
int l = s.length();
vector <vector <int>> d(30);
for (int i = 0; i < l; i++) {
d[s[i] - 'a'].push_back(i);
}
int sum = 0;
for (int i = 0; i < 30; i++) {
int mx = 0;
for (int j = 1; j <= l; j++) {
vector <int> cnt(30);
for (auto el: d[i]) {
cnt[s[(el + j) % l] - 'a']++;
}
int cur = 0;
for (int i = 0; i < 30; i++) {
if (cnt[i] == 1) cur++;
}
mx = max(mx, cur);
}
sum += mx;
}
cout << setprecision(15) << (long double)sum / l;
}/*1692278285.5531268*/
620A - Professor GukiZ's Robot | 1342A - Road To Zero |
1520A - Do Not Be Distracted | 352A - Jeff and Digits |
1327A - Sum of Odd Integers | 1276A - As Simple as One and Two |
812C - Sagheer and Nubian Market | 272A - Dima and Friends |
1352C - K-th Not Divisible by n | 545C - Woodcutters |
1528B - Kavi on Pairing Duty | 339B - Xenia and Ringroad |
189A - Cut Ribbon | 1182A - Filling Shapes |
82A - Double Cola | 45A - Codecraft III |
1242A - Tile Painting | 1663E - Are You Safe |
1663D - Is it rated - 3 | 1311A - Add Odd or Subtract Even |
977F - Consecutive Subsequence | 939A - Love Triangle |
755A - PolandBall and Hypothesis | 760B - Frodo and pillows |
1006A - Adjacent Replacements | 1195C - Basketball Exercise |
1206A - Choose Two Numbers | 1438B - Valerii Against Everyone |
822A - I'm bored with life | 9A - Die Roll |