#include<iostream>
using namespace std;
#include<string>
#include<map>

//map用于存储键值对,map默认按照升序排序,基于 < 运算符

int main() {
    string s;
    cin >> s;
    map<string, int>m;//string类型是键,int类型是值

    for (int i = 0; i < s.size(); i++) {//此步遍历所有子串,并统计数目
        for (int j = 1; j <= s.size() - i; j++) {
            m[s.substr(i, j)]++;//substr(pos, len)
        }
    }
    for (auto it = m.begin(); it != m.end(); it++) {
        if (it->second > 1)
            cout << it->first << " " << it->second << endl;
    }

    return 0;
}