import java.util.Scanner;
class Main{
public static void main
(String args
[]){ Scanner scan
= new Scanner
(System.
in); char ch;
int st1 = 1;
char[] result = new char[st.length()];
for(int i = st.length()-1; i >= 0; i--) {
result[i] = st.charAt(i);
}
for(int i = 0; i <= st.length()-1; i++) {
for(int j = 0; j < st.length()-1 ; j++) {
if(result[j] > result[j+1]){
ch = result[j];
result[j] = result[j+1];
result[j+1] = ch;
}
}
}
for(int i = 0; i < st.length()-1; i++) {
if(result[i] != result[i+1]){
st1++;
}
}
int[] sr = new int[st1];
int[] sr2 = new int[st1];
int t = 0;
for(int i = 0; i <= st.length()-1; i++) {
for(int j = 0; j < st1-1; j++){
if(t == st1-1){
break;
}
if(sr[j] != result[j]){
sr[t] = result[j];
t++;
}
}
}
for(int i = 0; i <= st.length()-1; i++){
for(int j = 0; j < st1; j++){
if(result[i] == sr[j]){
sr2[j] = sr2[j]+1;
}
}
}
int ss = 0;
for(int i = 0;i<= st1-1; i++){
for(int j = 0; j < st1-1; j++){
if(sr2[j] > sr2[j+1]){
ss = sr2[j];
sr2[j] = sr2[j+1];
sr2[j+1] = ss;
}
}
}
for(int i = 0; i < st1; i++) {
System.
out.
println(sr
[i
]+" "+sr2
[i
]); }
}
}
aW1wb3J0IGphdmEudXRpbC5TY2FubmVyOwpjbGFzcyBNYWluewogIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZyBhcmdzW10pewogICAgU2Nhbm5lciBzY2FuID0gbmV3IFNjYW5uZXIoU3lzdGVtLmluKTsKICAgIFN0cmluZyBzdCA9IHNjYW4ubmV4dCgpOwogICAgY2hhciBjaDsKICAgIGludCBzdDEgPSAxOwogICAgY2hhcltdIHJlc3VsdCA9IG5ldyBjaGFyW3N0Lmxlbmd0aCgpXTsKICAgIGZvcihpbnQgaSA9IHN0Lmxlbmd0aCgpLTE7IGkgPj0gMDsgaS0tKSB7CiAgICAgICAgICAgIHJlc3VsdFtpXSA9IHN0LmNoYXJBdChpKTsKICAgIH0KICAgIGZvcihpbnQgaSA9IDA7IGkgPD0gc3QubGVuZ3RoKCktMTsgaSsrKSB7CiAgICAgICAgZm9yKGludCBqID0gMDsgaiA8IHN0Lmxlbmd0aCgpLTEgOyBqKyspIHsKICAgICAgICAgICAgaWYocmVzdWx0W2pdID4gcmVzdWx0W2orMV0pewogICAgICAgICAgICAgICAgY2ggPSByZXN1bHRbal07CiAgICAgICAgICAgICAgICByZXN1bHRbal0gPSByZXN1bHRbaisxXTsKICAgICAgICAgICAgICAgIHJlc3VsdFtqKzFdID0gY2g7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICBmb3IoaW50IGkgPSAwOyBpIDwgc3QubGVuZ3RoKCktMTsgaSsrKSB7CiAgICAgICAgaWYocmVzdWx0W2ldICE9IHJlc3VsdFtpKzFdKXsKICAgICAgICAgICAgc3QxKys7CiAgICAgICAgfQogICAgfQogICAgaW50W10gc3IgPSBuZXcgaW50W3N0MV07CiAgICBpbnRbXSBzcjIgPSBuZXcgaW50W3N0MV07CiAgICBpbnQgdCA9IDA7CiAgICBmb3IoaW50IGkgPSAwOyBpIDw9IHN0Lmxlbmd0aCgpLTE7IGkrKykgewogICAgICAgIGZvcihpbnQgaiA9IDA7IGogPCBzdDEtMTsgaisrKXsKICAgICAgICAgICAgaWYodCA9PSBzdDEtMSl7CiAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgIH0KICAgICAgICAgICAgaWYoc3Jbal0gIT0gcmVzdWx0W2pdKXsKICAgICAgICAgICAgICAgIHNyW3RdID0gcmVzdWx0W2pdOwogICAgICAgICAgICAgICAgdCsrOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgCiAgICBmb3IoaW50IGkgPSAwOyBpIDw9IHN0Lmxlbmd0aCgpLTE7IGkrKyl7CiAgICAgICAgZm9yKGludCBqID0gMDsgaiA8IHN0MTsgaisrKXsKICAgICAgICAgICAgaWYocmVzdWx0W2ldID09IHNyW2pdKXsKICAgICAgICAgICAgICAgIHNyMltqXSA9IHNyMltqXSsxOwogICAgICAgICAgICB9CiAgICAgIH0KICAgIH0KICAgIGludCBzcyA9IDA7CiAgICBmb3IoaW50IGkgPSAwO2k8PSBzdDEtMTsgaSsrKXsKICAgICAgICBmb3IoaW50IGogPSAwOyBqIDwgc3QxLTE7IGorKyl7CiAgICAgICAgICAgIGlmKHNyMltqXSA+IHNyMltqKzFdKXsKICAgICAgICAgICAgICAgIHNzID0gc3IyW2pdOwogICAgICAgICAgICAgICAgc3IyW2pdID0gc3IyW2orMV07CiAgICAgICAgICAgICAgICBzcjJbaisxXSA9IHNzOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgZm9yKGludCBpID0gMDsgaSA8IHN0MTsgaSsrKSB7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKHNyW2ldKyIgIitzcjJbaV0pOwogICAgfQogIH0KfQ==