#include <bits/stdc++.h>
using namespace std;
bool compare(const pair<char, int>&i, const pair<char, int>&j)
{
return i.second > j.second;
}
int main() {
// your code goes here
string s;
cin>>s;
int n = s.size();
map<char,int> mp;
for(int i=0;i<n;i++){
if(mp.find(s[i]) != mp.end()){
mp[s[i]]+=1;
}
else mp[s[i]]=1;
}
vector<pair<char,int>> v;
for(map<char,int>::iterator it=mp.begin(); it!=mp.end();it++){
v.push_back(make_pair(it->first, it->second));
}
sort(v.begin(), v.end(), compare);
for(int i=0;i<v.size();i++){
cout<<v[i].first<<" "<<v[i].second/(n*1.0)<<", ";
}
cout<<endl;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpib29sIGNvbXBhcmUoY29uc3QgcGFpcjxjaGFyLCBpbnQ+JmksIGNvbnN0IHBhaXI8Y2hhciwgaW50PiZqKQp7CiAgICByZXR1cm4gaS5zZWNvbmQgPiBqLnNlY29uZDsKfQoKaW50IG1haW4oKSB7CgkvLyB5b3VyIGNvZGUgZ29lcyBoZXJlCglzdHJpbmcgczsKCWNpbj4+czsKCWludCBuID0gcy5zaXplKCk7CgltYXA8Y2hhcixpbnQ+IG1wOwoJZm9yKGludCBpPTA7aTxuO2krKyl7CgkJaWYobXAuZmluZChzW2ldKSAhPSBtcC5lbmQoKSl7CgkJCW1wW3NbaV1dKz0xOwoJCX0KCQllbHNlIG1wW3NbaV1dPTE7Cgl9Cgl2ZWN0b3I8cGFpcjxjaGFyLGludD4+IHY7Cglmb3IobWFwPGNoYXIsaW50Pjo6aXRlcmF0b3IgaXQ9bXAuYmVnaW4oKTsgaXQhPW1wLmVuZCgpO2l0KyspewoJCXYucHVzaF9iYWNrKG1ha2VfcGFpcihpdC0+Zmlyc3QsIGl0LT5zZWNvbmQpKTsKCX0KCXNvcnQodi5iZWdpbigpLCB2LmVuZCgpLCBjb21wYXJlKTsKCWZvcihpbnQgaT0wO2k8di5zaXplKCk7aSsrKXsKCQljb3V0PDx2W2ldLmZpcnN0PDwiICI8PHZbaV0uc2Vjb25kLyhuKjEuMCk8PCIsICI7Cgl9Cgljb3V0PDxlbmRsOwoJcmV0dXJuIDA7Cn0=