# # №1
# n = int(input())
# d = {}
# for _ in range(n):
# en_w, ru_w = input().split(' - ')
# d[en_w.strip()] = ru_w.strip()
# s_w = input().strip()
# print(d.get(s_w, "Не найдено"))
#
# №2
# grades = list(map(int, input().split()))
# grade_c = {}
# for grade in grades:
# grade_c[grade] = grade_c.get(grade, 0) + 1
# for grade in sorted(grade_c.keys()):
# print(f"{grade}: {grade_c[grade]}")
#
# # №3
# s1_raw = input().split()
# s2_raw = input().split()
# total = {}
# for item in s1_raw:
# name, qty = item.split(':')
# total[name] = int(qty)
# for item in s2_raw:
# name, qty = item.split(':')
# total[name] = total.get(name, 0) + int(qty)
# for name, qty in total.items():
# print(f"{name}: {qty}")
#
# # №4
# res = {}
# with open("results.txt", "r") as f:
# for l in f:
# if l.strip():
# lname, score = l.split()
# res[lname] = int(score)
# best = max(res, key=res.get)
# print(f"{best} {res[best]}")
#
# # №5
# in_st = input().split()
# inv_d = {}
# for pair in in_st:
# key, value = pair.split('=')
# inv_d[value] = key
# for key in sorted(inv_d.keys()):
# print(f"{key}: {inv_d[key]}")
#
# # №6
# t = input().lower()
# l_c = {}
# for char in t:
# if char.isalpha():
# l_c[char] = l_c.get(char, 0) + 1
# most = max(l_c, key=l_c.get)
# print(f"Буква: {most}, Количество: {l_c[most]}")
# №7
words = input().split()
d = {}
for w in words:
ln = len(w)
if ln not in d:
d[ln] = []
if w not in d[ln]:
d[ln].append(w)
for k in sorted(d):
print(f"{k}: {', '.join(d[k])}")