#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
typedef struct
{
char letter;
int count;
}
LetterCount;
int compare(const void *a, const void *b) {
LetterCount *countA = (LetterCount *)a;
LetterCount *countB = (LetterCount *)b;
if (countA->count != countB->count) {
return countB->count - countA->count;
} else {
return countA->letter - countB->letter;
}
}
void countLetters(char* str) {
int length = strlen(str);
LetterCount letterCounts[52];
for (int i = 0; i < 52; i++) {
if (i < 26) {
letterCounts[i].letter = 'a' + i;
} else {
letterCounts[i].letter = 'A' + i - 26;
}
letterCounts[i].count = 0;
}
for (int i = 0; i < length; i++) {
if (isalpha(str[i])) {
int index;
if (islower(str[i])) {
index = str[i] - 'a';
} else {
index = str[i] - 'A' + 26;
}
letterCounts[index].count++;
}
}
qsort(letterCounts, 52, sizeof(LetterCount), compare);
for (int i = 0; i < 52; i++) {
if (letterCounts[i].count > 0) {
printf("%c:%d;", letterCounts[i].letter, letterCounts[i].count);
}
}
printf("\n");
}
int main() {
char str[10000] = {'\0'};
scanf("%s",str);
countLetters(str);
return 0;
}