/*
TASK:balls
LANG:C++
*/
#include<iostream>
#include<string>
using namespace std;
char a[1000],b[1000];
int mat[1000][1000];
int main(){
cin>>a>>b;
int n=strlen(a),
    m=strlen(b),k=1;
for(int i=0;i<n;i++)if(a[i]==b[0]){for(;i<n;i++)mat[i][0]=1;}
for(int i=0;i<m;i++)if(a[0]==b[i]){for(;i<m;i++)mat[0][i]=1;}

for(int i=1;i<n;i++){k=1;
for(int j=1;j<m;j++){
if(mat[i][j]<mat[i-1][j])mat[i][j]=mat[i-1][j];
if(k&&mat[i][j-1]==mat[i][j]&&a[i]==b[j]){
               k=0;
               mat[i][j]++;
               }
else{          mat[i][j]=mat[i][j-1];
               if(mat[i][j]<=mat[i-1][j]){mat[i][j]=mat[i-1][j];k=1;}
}

}}

cout<<mat[n-1][m-1]<<endl;
return 0;
}
