#include <iostream>
#include <cstring>
using namespace std;
const int N = 100;
char a[N], b[N];
int dp[N][N];
int main() {
// asdstory adminsorry
scanf("%s %s", a, b);
int n = strlen(a);
int m = strlen(b);
for (int i = 0; i <= n; i++) {
dp[i][0] = 0;
}
for (int j = 0; j <= m; j++) {
dp[0][j] = 0;
}
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= m; j++) {
if (a[i-1] == b[j-1]) {
dp[i][j] = dp[i-1][j-1] + 1;
}
else dp[i][j] = max(dp[i][j-1], dp[i-1][j]);
}
}
printf("%d\n", dp[n][m]);
return 0;
}