#include <stdio.h>
#include <string.h>
void KMP(char S[],char T[],int next[]);
void GetNext(char T[],int next[]);
int main(void)
{
char S[100],T[100];
int next[100];
fgets(S,100,stdin);//fgets读取回车符,在计算长度时需要减1
fgets(T,100,stdin);
GetNext(T,next);
KMP(S,T,next);
return 0;
}
void KMP(char S[],char T[],int next[])
{
int i,j,SLen,TLen;
SLen = strlen(S)-1;
TLen = strlen(T)-1;
i = 0; j = 0;
while(i < SLen && j<TLen)
{
if(j == -1 || S[i] == T[j])
{
i++; j++;
}
else j = next[j];
}
if(j == TLen) printf("%d\n",i-TLen+1);
else printf("000000\n");
}
void GetNext(char T[],int next[])
{
int TLen,j,k;
TLen = strlen(T)-1;
j = 0; k = -1;
next[0] = -1;
while(j < TLen)
{
if(k == -1 || T[j] == T[k])
{
k++; j++;
if(T[j] != T[k])
next[j] = k;
else next[j] = next[k];
}
else k = next[k];
}
//for(j=0;j<TLen;j++)
//printf("%d ",next[j]);
//printf("\n");
}