#include <iostream>
#include <string>
int find_mx_substr_len(const std::string& str_a,const std::string& str_b){
auto & a = str_a.size() < str_b.size() ? str_a : str_b;
auto & b = str_a.size() < str_b.size() ? str_b : str_a;
size_t res = 0;
for(int left = 0;left < a.size();left++){
if(a.size() - left <= res){break;}
auto sub = a.substr(left,a.size() - left);
while(!sub.empty()){
if(b.find(sub) != b.npos){
res = std::max(res,sub.size());
break;
}
sub.pop_back();
}
}
return res;
}
int main(){
std::string str_a,str_b;
while(std::cin >> str_a >> str_b) {
std::cout <<
find_mx_substr_len(str_a,str_b) << std::endl;
}
return 0;
}