/*
TASK: BALLS
LANG: C++
*/

#include <stdio.h>
#include <string.h>

#define max(a,b) ((a)>(b)?(a):(b))

const int MAX = 1005;

char p[MAX], q[MAX];
int n, m;

int A[MAX][MAX];

void input ()
{
   scanf ("%s", p+1);
   scanf ("%s", q+1);

   n = strlen(p+1);
   m = strlen(q+1);
}

void solve ()
{
   int i, j;

   for (i=1; i<=n; i++)
      for (j=1; j<=m; j++)
         if (p[i] == q[j]) A[i][j] = A[i-1][j-1]+1;
         else A[i][j] = max(A[i-1][j], A[i][j-1]);
}

int main ()
{
   //freopen ("balls.in", "r", stdin);

   input ();
   solve ();

   printf ("%d\n", A[n][m]);

   return 0;
}

