program p1751;
var next:array[0..1000]of longint;
    s,p:ansistring;
    i,j,k,l:longint;
begin
 for l:=1 to 3 do
  begin
   readln(s);
   i:=1;
   while s[i]<>' ' do inc(i);
   inc(i);
   p:=copy(s,i,length(s)-(i-1));
   delete(s,i-1,length(s)-(i-2));
   j:=1;k:=0;
   next[1]:=0;
   while j<length(p) do
    if (k=0)or(p[j]=p[k])then
     begin
      inc(k);inc(j);
      next[j]:=k;
     end
    else k:=next[k];
   j:=1;
   k:=1;
   while (j<=length(s))and(k<=length(p))do
    if (k=0)or(s[j]=p[k]) then
     begin
      inc(k);
      inc(j);
     end
    else k:=next[k];
   if k>length(p) then writeln(j-length(p))
   else writeln(0);
  end;
end.
/**************************************************************
	Problem: 2152
	User: admin
	Language: Pascal
	Result: Wrong Answer
****************************************************************/