下标从0开始的
#include <bits/stdc++.h>
using namespace std;
const int maxn=1000005;
const int inf=0x3f3f3f3f;
int next[15];
string a,b;
int k,n,m;
void get_next(){
next[0]=-1;
int i=0,j=-1;
while(i<n){
if(j==-1||a[i]==a[j]){
i++;j++;
next[i]=j;
}
else j=next[j];
}
// for(int i=0;i<a.size();i++)
// cout<<next[i];
// cout<<endl;
}
int kmp(int pos){
int i=pos,j=0;
while(i<m&&j<n){
if(j==-1||b[i]==a[j]){
i++;
j++;
}
else j=next[j];
}
if(j>=n) return i-a.size();//特别注意!!!直接判断出错了可能是负数问题
return -2;
}
int main(){
scanf("%d",&k);
while(k--){
cin>>a>>b;
n=a.size();m=b.size();
memset(next,0,sizeof(next));
get_next();
int i=0,ans=0;
while(i<b.size()){
i=kmp(i);
if(i==-2) break;
else ans++;
i++;
}
printf("%d\n",ans);
}
return 0;
}