1 #include <iostream>
2 #include <cstdio>
3
4 using namespace std;
5
6 int n,m;
7 int t[100010];
8 int s[1000010];
9 int next1[100010];
10
11 void getnext()
12 {
13 next1[0]=-1;
14 int i=0,j=-1;
15 while(i<m)
16 {
17 while(j!=-1&&t[i]!=t[j])
18 j=next1[j];
19 next1[++i]=++j;
20 }
21 }
22
23 int kmp()
24 {
25 getnext();
26 int i=0,j=0;
27 while(i<n)
28 {
29 while(j!=-1&&s[i]!=t[j])
30 j=next1[j];
31 i++;
32 j++;
33 if(j>=m)
34 {
35 return i-m+1;
36 }
37 }
38 return -1;
39 }
40
41 int main()
42 {
43 int T;
44 scanf("%d",&T);
45 while(T--)
46 {
47 scanf("%d%d",&n,&m);
48 for(int i=0;i<n;i++)
49 {
50 scanf("%d",&s[i]);
51 }
52 for(int i=0;i<m;i++)
53 {
54 scanf("%d",&t[i]);
55 }
56 cout<<kmp()<<endl;
57 }
58 return 0;
59 }