#include <iostream>
#include <cstdio>
#include <algorithm>

using namespace std;

const int MAX_NUM = 75;

//哈希表
struct HashTable {
    int len;        //记录position数组的长度,即元素出现的次数
    int *position;  //数组记录字符出现的索引
};

/**
 * 找位置
 * @return
 */
int main() {

    string str;
    while (cin >> str) {
        int length = str.size();
        HashTable table[MAX_NUM];
        //初始化哈希表
        for (int i = 0; i < MAX_NUM; ++i) {
            table[i].len = 0;
            table[i].position = new int{0};
        }

        /*
         * 遍历字符串
         * 1.统计每个字符出现的次数
         * 2.记录相同字符出现的位置索引
         */
        for (int j = 0; j < length; ++j) {
            int index = str[j] - '0';
            table[index].position[table[index].len] = j;
            table[index].len++;
        }

        
        for (int k = 0; k < length; ++k) {
            //flag标记位,第一个不打印",",后续每个字符都打印","
            bool flag = false;
            int index = str[k] - '0';
            if (table[index].len > 1) {
                //该字符超过两个,则打印该字符及其索引
                for (int i = 0; i < table[index].len; ++i) {
                    if (flag) {
                        cout << ",";
                    }
                    //打印字符
                    cout << str[k] << ":" << table[index].position[i];
                    flag = true;
                }
                cout << endl;
            }
            table[index].len = 0;
        }
    }

    return 0;
}