#include<stdio.h> #include<string.h> #include<stdlib.h> int a[1000010],b[10010]; int next[10010]; void get_next() { int i=1,j=0; next[1]=0; while(i<b[0]) { if(b[i]==b[j]||j==0) { i++; j++; if(b[i]!=b[j]) { next[i]=j; } else { next[i]=next[j]; } } else { j=next[j]; } } } int index_kmp() { int i,j; i=j=1; while(i<=a[0]&&j<=b[0]) { if(a[i]==b[j]||j==0) { i++; j++; } else { j=next[j]; } } if(j>b[0]) { return i-b[0]; } else { return -1; } } int main() { int t,n,m; scanf("%d",&t); while(t--) { memset(a,0,sizeof(a)); memset(b,0,sizeof(b)); memset(next,0,sizeof(next)); scanf("%d%d",&n,&m); a[0]=n; b[0]=m; for(int i=1;i<=n;i++) { scanf("%d",&a[i]); } for(int i=1;i<=m;i++) { scanf("%d",&b[i]); } get_next(); int p=index_kmp(); printf("%d\n",p); } system("pause"); return 0; }