#include <stdio.h>
#include <stdlib.h>
#define NOTHAVE 0
int strlen(char *c){
int i=0;
while(c[i] != '\0'){ //字符串以'\0'结尾
i++;
}
return i;
}
/*--------------------------------------------------------------------------------------------------------*/
void GetNext(char c[], int *next){
int i=1,j=0, n;
next[0]=0;
n = strlen(c);
while(i < n){
if( j==0 && c[i]!=c[j] ) {
next[i]=0; ++i;
}
else if( c[i]==c[j] ){
j++; next[i]=j; i++;
}
else{
j=next[j-1];
}
}
}
/*--------------------------------------------------------------------------------------------------------*/
int KMPmatch(char original[],char module[]){
int orlen,molen,i=0,j=0 ;
int next[100]; //模式串最大长度100
GetNext(module,next);
orlen = strlen(original); molen = strlen(module);
while(i<orlen && j<molen){
if(j==0 && original[i]!=module[j]){
++i;
}
else if( original[i]==module[j] ){
++i; ++j;
}
else{
j=next[j];
}
}
if(j==molen) return i-j+1; //匹配成功,返回变量所在位置
else if(i==orlen) return NOTHAVE;
else return -9999;
}
/*--------------------------------------------------------------------------------------------------------*/
int main(){
char origin[50],modu[10]; int next[50]; int i,n;
scanf("%s",origin);
scanf(" %s",modu);
GetNext(modu, next);
n = strlen(modu);
// for (i=0; i<n; i++){
// printf("%d,",next[i]);
// }
int num = 0;
num = KMPmatch(origin, modu);
printf("\n%d",num);
return 0;
}