#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int Index_KMP (char *S, char *T, int pos, int s, int t, int *next)
{
int i=pos,j=1;
while(i<=s&&j<=t)
{
if(j==0||S[i]==T[j])
{
++i;
++j;
}
else
{
j=next[j];
}
}
if(j>t)
{
return i-t;
}
else
{
return 0;
}
}
void Get_next(char *T, int *next, int s, int t)
{
int j=1;
int k=0;
next[1]=0;
while(j<=t)
{
if(k==0||T[j]==T[k])
{
++j;
++k;
next[j]=k;
}
else
{
k=next[k];
}
}
}
int main()
{
//char initial[250];
char S[250];
char T[250];
int s,t,pos=1;
int next[25];
scanf("%s",S);
scanf("%s",T);
for(int i=0;i<25;i++)
{
next[i]=0;
}
s=strlen(S);
t=strlen(T);
for(int i=t;i>0;i--)
{
T[i]=T[i-1];
}
for(int i=s;i>0;i--)
{
S[i]=S[i-1];
}
Get_next(T, next, s, t);
for(int i=1;i<=t;i++)
{
printf("%d,",next[i]);
}
printf("\n");
int check= Index_KMP(S,T,1, s, t, next);
if(check==0)
{
printf("-1\n");
}
while(check!=0)
{
printf("%d\n",check);
//pos=check+t;
if(t==1)
{
pos++;
}
else
{
pos=check+next[t];
}
check=Index_KMP (S, T, pos, s, t, next);
}
return 0;
}