const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;
void (async function () {
const arr1 = (await readline()).split(",").map(Number);
const arr2 = (await readline()).split(",").map(Number);
const map = new Map();
for (let i = 0; i < arr1.length; i++) {
map.set(arr1[i], (map.get(arr1[i]) || 0) + 1);
}
const res = [];
for (let i = 0; i < arr2.length; i++) {
if (!map.has(arr2[i])) continue;
else {
if (!res.includes(arr2[i])) {
res.push(arr2[i]);
}
}
}
const ansMap = new Map();
res.forEach((val) => {
const [num, count] = [val, map.get(val)];
ansMap.set(
count,
ansMap.get(count)
? [...ansMap.get(count), num].sort((a, b) => a - b)
: [num]
);
});
const ansMapKeys = [...ansMap.keys()].sort((a, b) => a - b);
for (let i = 0; i < ansMapKeys.length; i++) {
const key = ansMapKeys[i];
console.log(`${key}:${[...ansMap.get(key)].join(",")}`);
}
})();