import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        //格子法 动态规划:每次存储最大的连续的计数值。
        /*
        0adccbdaf
        a10000000
        d02000000
        a00000000
        c00010000
        b00002000
        d00000300
        e00000000
        f00000001
        */
        char[] str1 = sc.nextLine().toCharArray();
        char[] str2 = sc.nextLine().toCharArray();
        Integer[][] count = new Integer[str1.length+1][str2.length+1];
        //初始化首行和首列都是0。
        for (int i = 0; i < str1.length+1; i++) {
            count[i][0] = 0;
        }
        for (int i = 0; i < str2.length+1; i++) {
            count[0][i] = 0;
        }
        Integer maxLength = 0;
        for (int i = 1; i < str1.length+1; i++) {
            for (int j = 1; j < str2.length+1; j++) {
               
                if (str1[i-1]==str2[j-1]) {
                    count[i][j] = count[i-1][j-1] + 1;
                }else {
                    count[i][j] = 0;
                }
                maxLength = Math.max(maxLength,count[i][j]);
            }
        }
        System.out.println(maxLength);
    }
}