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
****************************************************************/