#include<cstdio>
#include<cstring>
inline int bm(int x,int y){
return (x>y?x:y);
}
int main()
{
char A[1000],B[1000],V[1000][1000];
// freopen("test.txt","r",stdin);
int a,b,i,j;
while(scanf("%s %s",A,B)!=EOF){
a=strlen(A);
b=strlen(B);
memset(V,0,sizeof(V));
for(i=0;i<b;i++){
// printf("%s %c\n",B,B[i]);
for(j=0;j<a;j++){
// printf(" %c\n",A[j]);
// if(i==0&&j==0)continue;
if(A[j]==B[i]){
// printf("i=%d j=%d char=%c\n",i+1,j+1,B[i]);
V[i+1][j+1]=V[i][j]+1;
}
else {
V[i+1][j+1]=bm(V[i][j+1],V[i+1][j]);
}
}
}
/* for(i=0;i<=b;i++){
for(j=0;j<=a;j++)printf("%02d ",V[i][j]);
printf("\n");
}*/
printf("%d\n",V[b][a]);
}
return 0;
}