/*
TASK:balls
LANG:C++
*/
#include<iostream>
using namespace std;

char ball[1002],basket[1002];

int main()
{
    cin>>ball;
    cin>>basket;
    int max;
    int d[1003][1003],c[1003][1003];
    int f=0;
    int n=strlen(ball),m=strlen(basket);
    for(int i=0;i<n;i++)
    {
            if(ball[0]==basket[i])
            {f=1;
            d[0][i]=1;
            }
            c[0][i]=f;
    }
    f=0;
    for(int k=0;k<m;k++)
    {
            if(basket[0]==ball[k])
            {f=1;d[k][0]=1;
            }
            c[k][0]=f;
    }
    for(int i=1;i<n;i++)
            for(int k=1;k<m;k++)
                    if(ball[i]==basket[k])
                    {
                                          c[i][k]=c[i-1][k-1]+1;
                                          max=c[i][k];
                    }
                    else
                        if(c[i-1][k]>c[i][k-1])
                                               c[i][k]=c[i-1][k];
                        else
                            c[i][k]=c[i][k-1];
    cout<<max<<endl;
    //system("pause");
    return 0;
}
                            
                                  
    
