{
TASK:balls
LANG:PASCAL
}

Var
 Tc, Kc : Array[1..1000] of Char;
 C : Char;
 Nt, Nk, Max, Cnt, Fr : Word;

Procedure F(Nx, Ct, Ck : Word);
var B : Word;
Begin
 {B := CN;}
 {Repeat}
 {Until X = N+1;}

 If (Ct > Nt) or (Ck > Nk) then
 Begin
  If Nx > Max then Max := Nx;
  Exit;
 end;

 Fr := 0;
 For Cnt := Ck to Nk do If Kc[Cnt] = Tc[Ct] then Begin Fr := Cnt; Break; end;

 If Fr = 0 then Begin If Nx > Max then Max := Nx; end

 else F(Nx+1, Ct+1, Fr);
      F(Nx  , Ct+1, Ck);


 {If X > N then If XX > Max then Max := XX;}
end;

Begin
 FillChar(Tc, sizeof(Tc), 0);
 FillChar(Kc, sizeof(Kc), 0);

 Nt := 0; Nk := 0;
 While not EoLn do Begin Inc(Nt); Read(Tc[Nt]); end; Read(C, C);
 While not EoLn do Begin Inc(Nk); Read(Kc[Nk]); end; {Read(C, C);}
 F(0, 1, 1);
 WriteLn(Max);

 {Write(N, ' '); For X := 1 to N do Write(A[X]); WriteLn;
 Write(M, ' '); For X := 1 to M do Write(B[X]); WriteLn;}
end.