#include <iostream>
#include <string>
#define N 1000
using namespace std;
int f[N][N]; //只能开外面。。。
int main()
{
string a, b;
int n, m, i, j, k, l;
while (cin>>a>>b)
{
n = a.length();
m = b.length();
a = " " + a;
b = " " + b;
for (i=1;i<=n;++i)
for (j=1;j<=m;++j)
{
f[i][j] = max(f[i-1][j], f[i][j-1]);
f[i][j] = max(f[i][j], f[i-1][j-1] + (a[i]==b[j]));
}
printf("%d\n", f[n][m]);
}
return 0;
}
尼玛居然不给数据范围。。。