/*
TASK:balls
LANG:C++
*/

#include <iostream>
#include <string>
using namespace std;

string a,b;

int s[1024][2]; // posl.zapylnen + rezultat;

int main()
{
    cin >> a >> b;

    s[0][0] = -1;
    s[0][1] = 0;

    for ( int i = 1 ; i <= a.size() ; i++ )
    {
    	int max = 0;
        int maxpos = -1;
        
    	for ( int j = i-1 ; j >= 0 ; j-- )
        {
        	int k;
            for ( k = s[j][0]+1 ; k < b.size() ; k++ )
            	if ( b[k] == a[i-1] ) break;

            if ( k == b.size() )
            {
            	if ( max < s[j][1] )
                {
                	max = s[j][1];
                    maxpos = s[j][0];
                }
            }
            else
            {
            	if ( max < s[j][1]+1 )
				{
                	max = s[j][1]+1;
                    maxpos = k;
                }
                if ( max == s[j][1]+1 && maxpos > k ) maxpos = k;
            }
        }
        s[i][0] = maxpos;
        s[i][1] = max;
	}

    printf("%d\n",s[a.size()][1]);

	return 0;
}
