/*
TASK:balls
LANG:C++
*/
#include<iostream>
#include <string>
using namespace std;
const int maxn=1000;
int max(int a, int b)
{ int max=0;
  if(a>b) max=a;
  if(a<b) max=b;
  return max;
}
int f[maxn][maxn];

int main()
{
 string s1,s2;
 int i,j,m,n;
 cin>>s1>>s2;
  m=s1.length();
  n=s2.length(); 
for(i=1;i<=m;i++)
 for(j=1;j<=n;j++)
   if(s1[i-1]==s2[j-1])
     f[i][j]=f[i-1][j-1]+1;
   else 
     f[i][j]=max(f[i-1][j], f[i][j-1]);
     
    cout<<f[m][n]<<endl;
 return 0;
}
