{
TASK:balls
LANG:PASCAL
}
var s,p:array[1..1000] of char;
i,j,k,max,n,m:integer;

procedure rec(nmt,nmk,b:integer);
var br,i,j:integer;
begin
 for i:=nmt to n do
  for j:=nmk to m do
   if s[i]=p[j] then begin
      br:=b+1;
      rec(i+1,j+1,br);
      if br>max then max:=br;
      nmk:=nmk-1;
      br:=b-1;
   end;
end;
begin
 i:=0;
 repeat
  inc(i);
  read(s[i]);
 until eoln;
 readln;
 j:=0;
 repeat
  inc(j);
  read(p[j]);
 until eoln;
 n:=i;
 m:=j;
 max:=0;
 rec(1,1,0);
 writeln(max);
end.