#include<iostream>
#include<cstring>
using namespace std;
int f[1005][1005];
int main(){
string s1, s2;
cin >> s1 >> s2;
int len1 = s1.size(), len2 = s2.size();
for(int i = 1; i <= len1; i++)
for(int j = 1; j <= len2; j++){
f[i][j] = max(f[i-1][j], f[i][j-1]);
if(s1[i-1] == s2[j-1])
f[i][j] = max(f[i][j], f[i-1][j-1] + 1);
}
cout << f[len1][len2];
return 0;
}