#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;
}