#include <bits/stdc++.h>
#define LL long long
#define PII pair<int,int>
#define PIL pair<int,LL>
#define PLI pair<LL,int>
#define PIII pair<int,PII>
#define PLL pair<LL,LL>
#define PLII pair<LL,PII>
#define VI vector<int>
#define VVI vector<VI>
#define VL vector<LL>
#define VVL vector<VL>
#define VPII vector<PII>
#define FF first
#define SS second
#define MP make_pair
#define PB push_back
#define sqr(x) ((x) * (x))
#define all(x) x.begin(),x.end()
#define watch(x) cout<<(#x)<<" = "<<(x)<<'\n'
#define mset(a,v) memset(a,v,sizeof(a))
#define setp(x) cout<<fixed<<setprecision(x)
#define EPS 0.00000000001
#define PI acos(-1)
#define loop(i,b,n) for(int i=b;i<n;++i)
#define rev_loop(i,b,n) for(int i=b;i>=n;--i)
using namespace std;
const int MOD = 1e9 + 7;
const LL MX = 1e9;
const LL INF = 1e9;
void solve()
{
int n,m;
cin>>n>>m;
int N = n+m+1, a[N];
loop(i,0,n) cin>>a[i];
a[n] = INF;
loop(i,n+1,N) cin>>a[i];
VI z(N,0);
LL ps[n+1] = {0};
for (int i = 1, l = 0, r = 0; i < N; ++i)
{
if (i <= r) z[i] = min (r - i + 1, z[i - l]);
while (i + z[i] < N && a[z[i]] == a[i + z[i]]) ++z[i];
if (i + z[i] - 1 > r) l = i, r = i + z[i] - 1;
if(i > n) ++ps[z[i]];
}
LL mx = -1, mxl = 0;
rev_loop(i,n,1)
{
LL len = i;
if(i != n) ps[i] += ps[i+1];
if(mx < (i * ps[i])) {mx = (i * ps[i]); mxl = i;}
}
cout<<mxl<<'\n';
}
int main()
{
//ofstream out("output.txt");
//ifstream in("input.txt");
ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
int t;
cin>>t;
while(t--)
{
solve();
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgTEwgbG9uZyBsb25nCiNkZWZpbmUgUElJIHBhaXI8aW50LGludD4KI2RlZmluZSBQSUwgcGFpcjxpbnQsTEw+CiNkZWZpbmUgUExJIHBhaXI8TEwsaW50PgojZGVmaW5lIFBJSUkgcGFpcjxpbnQsUElJPgojZGVmaW5lIFBMTCBwYWlyPExMLExMPgojZGVmaW5lIFBMSUkgcGFpcjxMTCxQSUk+CiNkZWZpbmUgVkkgdmVjdG9yPGludD4KI2RlZmluZSBWVkkgdmVjdG9yPFZJPgojZGVmaW5lIFZMIHZlY3RvcjxMTD4KI2RlZmluZSBWVkwgdmVjdG9yPFZMPgojZGVmaW5lIFZQSUkgdmVjdG9yPFBJST4KI2RlZmluZSBGRiBmaXJzdAojZGVmaW5lIFNTIHNlY29uZAojZGVmaW5lIE1QIG1ha2VfcGFpcgojZGVmaW5lIFBCIHB1c2hfYmFjawojZGVmaW5lIHNxcih4KSAoKHgpICogKHgpKQojZGVmaW5lIGFsbCh4KSB4LmJlZ2luKCkseC5lbmQoKQojZGVmaW5lIHdhdGNoKHgpIGNvdXQ8PCgjeCk8PCIgPSAiPDwoeCk8PCdcbicKI2RlZmluZSBtc2V0KGEsdikgbWVtc2V0KGEsdixzaXplb2YoYSkpCiNkZWZpbmUgc2V0cCh4KSBjb3V0PDxmaXhlZDw8c2V0cHJlY2lzaW9uKHgpCiNkZWZpbmUgRVBTIDAuMDAwMDAwMDAwMDEKI2RlZmluZSBQSSBhY29zKC0xKQojZGVmaW5lIGxvb3AoaSxiLG4pIGZvcihpbnQgaT1iO2k8bjsrK2kpCiNkZWZpbmUgcmV2X2xvb3AoaSxiLG4pIGZvcihpbnQgaT1iO2k+PW47LS1pKQp1c2luZyBuYW1lc3BhY2Ugc3RkOwogCmNvbnN0IGludCBNT0QgPSAxZTkgKyA3Owpjb25zdCBMTCBNWCA9IDFlOTsKY29uc3QgTEwgSU5GID0gMWU5OwogCnZvaWQgc29sdmUoKQp7CiAgICBpbnQgbixtOwogICAgY2luPj5uPj5tOwogICAgaW50IE4gPSBuK20rMSwgYVtOXTsKICAgIGxvb3AoaSwwLG4pIGNpbj4+YVtpXTsKICAgIGFbbl0gPSBJTkY7CiAgICBsb29wKGksbisxLE4pIGNpbj4+YVtpXTsKIAogICAgVkkgeihOLDApOwogICAgTEwgcHNbbisxXSA9IHswfTsKIAogICAgZm9yIChpbnQgaSA9IDEsIGwgPSAwLCByID0gMDsgaSA8IE47ICsraSkKICAgIHsKICAgICAgICBpZiAoaSA8PSByKSB6W2ldID0gbWluIChyIC0gaSArIDEsIHpbaSAtIGxdKTsKICAgICAgICB3aGlsZSAoaSArIHpbaV0gPCBOICYmIGFbeltpXV0gPT0gYVtpICsgeltpXV0pICsreltpXTsKICAgICAgICBpZiAoaSArIHpbaV0gLSAxID4gcikgbCA9IGksIHIgPSBpICsgeltpXSAtIDE7CiAKICAgICAgICBpZihpID4gbikgKytwc1t6W2ldXTsKICAgIH0KIAogICAgTEwgbXggPSAtMSwgbXhsID0gMDsKICAgIHJldl9sb29wKGksbiwxKQogICAgewogICAgICAgIExMIGxlbiA9IGk7CiAgICAgICAgaWYoaSAhPSBuKSBwc1tpXSArPSBwc1tpKzFdOwogICAgICAgIGlmKG14IDwgKGkgKiBwc1tpXSkpIHtteCA9IChpICogcHNbaV0pOyBteGwgPSBpO30KICAgIH0KIAogICAgY291dDw8bXhsPDwnXG4nOwp9CiAKaW50IG1haW4oKQp7CiAgICAvL29mc3RyZWFtIG91dCgib3V0cHV0LnR4dCIpOwogICAgLy9pZnN0cmVhbSBpbigiaW5wdXQudHh0Iik7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApO2Npbi50aWUoMCk7Y291dC50aWUoMCk7CiAKICAgIGludCB0OwogICAgY2luPj50OwogCiAgICB3aGlsZSh0LS0pCiAgICB7CiAgICAgICAgc29sdmUoKTsKICAgIH0KIAogICAgcmV0dXJuIDA7Cn0=