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