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

int main() {
    string str;
    cin>>str;
    map<string,int> m;
    for(int i=0;i<str.size();i++){
        for(int j=1;j<=str.size()-i;j++){
            m[str.substr(i,j)]++;//获取字符串中从第i位开始的长度为j的字符串
        }
    }
    //map由红黑树实现,自动按照key值从小到大排序
    map<string,int>:: iterator it=m.begin();
    for(it=m.begin();it!=m.end();it++){
        if(it->second>1){
            cout<<it->first<<" "<<it->second<<endl;
        }
    }
    return 0;
}