def zichuan(s: str):
    ans = []  # 储存字串
    for i in range(1, len(s) + 1):
        for j in range(len(s) + 1 - i):
            ans.append(s[j : i + j])
    return ans


def ct(s: str, l: list):
    ct = 0
    for x in l:
        if s == x:
            ct += 1
    return ct


while True:
    try:
        s = input()
        ans = zichuan(s)
        ans0 = []
        for x in ans:
            if ct(x, ans) > 1 and x + " " + str(ct(x, ans)) not in ans0:
                ans0.append(x + " " + str(ct(x, ans)))
        ans0.sort()
        for x in ans0:
            a = x.split(" ")
            print(" ".join(a))
    except:
        break