1 /*
2 * kmp
3 */
4
5 #include <cstdio>
6 #include <iostream>
7
8 using namespace std;
9
10 const int N = 1005;
11
12 int next[N];
13 char str[N], pat[N];
14
15 void indexNext() {
16 int k = 0;
17 next[1] = 0;
18 for (int i=2; pat[i]; ++i) {
19 while (k && pat[k+1]!=pat[i]) k = next[k];
20 if (pat[k+1] == pat[i]) ++k;
21 next[i] = k;
22 }
23 }
24
25 int kmp() {
26 int k = 0, cs = 0;
27 int lenPat = strlen(pat) - 1;
28 for (int i=1; str[i]; ++i) {
29 while (k && pat[k+1]!=str[i]) k = next[k];
30 if (pat[k+1] == str[i]) ++k;
31 if (k == lenPat) ++cs, k = 0;
32 }
33 return cs;
34 }
35
36 int main() {
37 str[0] = pat[0] = ' ';
38 while (scanf("%s", str+1), str[1]!='#') {
39 scanf ("%s", pat+1);
40 indexNext();
41 printf ("%d\n", kmp());
42 }
43 return 0;
44 }