1 /*
2 * kmp
3 */
4 #include <cstdio>
5 #include <iostream>
6
7 using namespace std;
8
9 const int N = 10005;
10 const int M = 1000005;
11
12 int next[N];
13 char pat[N], str[M];
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 = next[k];
32 }
33 return cs;
34 }
35
36 int solve() {
37 indexNext();
38 return kmp();
39 }
40
41 int main() {
42 int t;
43 scanf ("%d", &t);
44 str[0] = pat[0] = '#';
45 while (t--) {
46 scanf ("%s%s", pat+1, str+1);
47 printf ("%d\n", solve());
48 }
49 return 0;
50 }