#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int callargeststring(string str1,string str2)
{
int i=0;
for(;i<str1.size(); i++)
{
if(str1[i] != str2[i])
break;
}
return i ;
}
int main()
{
string str;
cin >> str;
//·Ö¸îºó׺Ê÷
vector<string> vec;
string str_tmp;
for(int i=0 ; i<str.length() ; i++)
{
str_tmp = str.substr(i);
vec.push_back(str_tmp);
}
sort(vec.begin(),vec.end());
int maxlen = 0;
string str_max;
for(int j=0 ; j<vec.size()-1 ; j++)
{
int len = callargeststring(vec[j],vec[j+1]);
if(str_max.size() < len)
{
str_max.clear();
str_max = vec[j];
}
maxlen = max(maxlen,len);
}
cout << str_max <<endl;
cout << maxlen <<endl;
return 0;
}