str1 = input()
str2 = input()
n = len(str1)
m = len(str2)
L = [[0] * (n+1) for i in range(m+1)] # 初始化一个 (m+1)*(n+1) 的二维数组
# L[i][j] 表示 str1 的前 i 个字符和 str2 的前 j 个字符的最长公共子序列长度
for i in range(1, m+1):
for j in range(1, n+1):
if str1[j-1] == str2[i-1]: # 注意这里的索引需要减 1
L[i][j] = L[i-1][j-1] + 1
else:
L[i][j] = max(L[i-1][j], L[i][j-1])
print(L[m][n]) # 输出最长公共子序列的长度