#include<bits/stdc++.h>
#define M 1004
using namespace std;
string a, b;
int dp[M][M];
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
getline(cin, a);
getline(cin, b);
int n = a.size();
int m = b.size();
a = ' ' + a;
b = ' ' + b;
for(int i = 1; i <= n; i++)
{
for(int j = 1; j <= m; j++)
{
if(a[i] == b[j]) dp[i][j] = dp[i - 1][j - 1] + 1;
else dp[i][j] = max(dp[i - 1][j], dp[i][j - 1]);
}
}
cout << dp[n][m];
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KI2RlZmluZSBNIDEwMDQKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnN0cmluZyBhLCBiOwppbnQgZHBbTV1bTV07CgppbnQgbWFpbigpCnsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCk7CiAgICBjaW4udGllKDApOyAgICAgY291dC50aWUoMCk7CgogICAgZ2V0bGluZShjaW4sIGEpOwogICAgZ2V0bGluZShjaW4sIGIpOwogICAgaW50IG4gPSBhLnNpemUoKTsKICAgIGludCBtID0gYi5zaXplKCk7CiAgICBhID0gJyAnICsgYTsKICAgIGIgPSAnICcgKyBiOwogICAgZm9yKGludCBpID0gMTsgaSA8PSBuOyBpKyspCiAgICB7CiAgICAgICAgZm9yKGludCBqID0gMTsgaiA8PSBtOyBqKyspCiAgICAgICAgewogICAgICAgICAgICBpZihhW2ldID09IGJbal0pICAgZHBbaV1bal0gPSBkcFtpIC0gMV1baiAtIDFdICsgMTsKICAgICAgICAgICAgZWxzZSAgICBkcFtpXVtqXSA9IG1heChkcFtpIC0gMV1bal0sIGRwW2ldW2ogLSAxXSk7CiAgICAgICAgfQogICAgfQogICAgY291dCA8PCBkcFtuXVttXTsKfQo=