#include <iostream>
using namespace std;
int n, m;
void getNext(int next[],char src[],char des[]) {
int i, j;
i = 0;
j = -1;
n = strlen( src );
m = strlen( des );
next[0] = -1;
while( i < m ) {
if( j == -1 || des[i] == des[j]) {
i ++;
j ++;
next[i] = j;
} else {
j = next[j];
}
}
}
void solve(int next[],char src[],char des[]) {
int i, j;
i = j = 0;
int cnt = 0;
while( i < n && j < m ) {
cnt ++;
if( j == -1 || src[i] == des[j] ) {
i ++;
j ++;
} else {
j = next[j];
}
}
if( j == m ) printf( "%d\n", i-j+1 );
else printf( "-1\n" );
printf( "cnt = %d\n", cnt );
}
int main() {
// freopen( "c:/aaa.txt", "r", stdin );
char src[]="jfkdsahdiojdaigfgthlipjgffg";
char des[]="gffg";
int next[10] = {};
getNext(next,src,des);
solve(next,src,des);
system("pause");
return 0;
}