#include <iostream>
#include <string>
#include <algorithm>
#include <cstring>
using namespace std;
//英语 抄博友程序 动态规划 背
int dp[1008][1008];
int main()
{
string a,b;
while(cin>>a>>b)
{
memset(dp,0,sizeof(dp));
for(int i=1;i<=a.size();i++)
{
for(int j=1;j<=b.size();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]);
}
}
}
cout<<dp[a.size()][b.size()]<<endl;
}
return 0;
}