#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;
}