1 #include<stdio.h>
2 #include<string.h>
3 #define N 1000005
4 int s[N];
5 int p[N];
6 int next[N];
7 int m,n;
8 void getnext(){
9 int j=0,k=-1;
10 next[0]=-1;
11 while(j<m){
12 if(k==-1||p[j]==p[k]){
13 j++;
14 k++;
15 next[j]=k;
16 }
17 else
18 k=next[k];
19 }
20 }
21 int kmp(){
22 int i=0,j=0;
23 getnext();
24 while(i<n){
25 if(j==-1||s[i]==p[j]){
26 i++;
27 j++;
28 }
29 else
30 j=next[j];
31 if(j==m)
32 return i;
33 }
34 return -1;
35 }
36 int main(){
37 int t;
38 scanf("%d",&t);
39 while(t--){
40 scanf("%d%d",&n,&m);
41 for(int i=0;i<n;i++)
42 scanf("%d",&s[i]);
43 for(int i=0;i<m;i++)
44 scanf("%d",&p[i]);
45 if(kmp()==-1)
46 printf("-1\n");
47 else
48 printf("%d\n",kmp()-m+1);
49 }
50 return 0;
51 }