#include<iostream> #include<stdio.h> #include<math.h> #include<algorithm> #include<string.h> #include<stack> #include<queue> #include<vector> #include<stdlib.h> using namespace std; int main() { char s1[1010],s2[1010]; while(scanf("%s",s1)!=EOF) { scanf("%s",s2); int dp[1010],len_s1,len_s2,da[1010]; memset(dp,0,sizeof(dp)); memset(da,0,sizeof(da)); int i,j; len_s1=strlen(s1),len_s2=strlen(s2); for(i=1; i<=len_s1; i++) { for(j=1; j<=len_s2; j++) { if(s1[i-1]==s2[j-1]) dp[j]=da[j-1]+1; else dp[j]=da[j-1]; } for(j=1; j<=len_s2; j++) { da[j]=max(da[j-1],max(da[j],max(dp[j-1],dp[j]))); } } printf("%d ",da[len_s2]); } return 0; }