#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
const int maxn=1000010;
int nxt[maxn];
int a[maxn],b[maxn];
int n,m;
void getnext() //求 nxt[]
{
int i,j;
i = 0;
j = nxt[0] = -1;
while(i<m)
{
if(j==-1 || b[i]==b[j])
{
i++,j++;
if(b[i]!=b[j])
nxt[i] = j;
else
nxt[i] = nxt[j];
}
else
j = nxt[j];
}
}
int Search()
{
int i,j;
i = j = 0;
while(i<n && j<m)
{
if(j==-1 || a[i]==b[j])
{
i++,j++;
}
else
j = nxt[j];
}
if(j==m)
return i-j;
else
return -2; // 返回-1时 输出结果需要判断是否为-1,不是-1时加1 ,返回-2在输出时就不用判断
}
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
scanf("%d%d",&n,&m);
for(int i=0;i<n;i++)
scanf("%d",&a[i]);
for(int i=0;i<m;i++)
scanf("%d",&b[i]);
getnext();
printf("%d\n",Search()+1); //返回从第几个字符开始相同 所以加 1
}
return 0;
}