#include<stdio.h>
#include<string.h>
#define max(a, b) a > b ? a : b
#define N 1010
char x[N], y[N];
int dp[N][N];
int main()
{
scanf("%s%s", x+1, y+1);
int lx = strlen(x+1), ly = strlen(y+1);
int i, j;
for(i = 1; i <= lx; i++)
{
for(j = 1; j <= ly; j++)
{
if(x[i] == y[j])
{
dp[i][j] = dp[i-1][j-1]+1;
}
else
{
dp[i][j] = max(dp[i-1][j], dp[i][j-1]);
}
}
}
printf("%d\n", dp[lx][ly]);
return 0;
}