#include <bits/stdc++.h>
using namespace std;
#define FASTIO ios_base::sync_with_stdio(false), cin.tie(0), cout.tie(0);
typedef long long ll;
using pii = pair<ll, ll>;
const double PI = acos(-1.0);
const ll mod = 1e9 + 7;
const ll N = 1000006;
void print(vector<ll> &occ, ll lim) {
ll ans = 0;
ll mx_occ = 0;
for (ll i = 1; i <= lim; i++) {
if (mx_occ <= i * occ[i]) {
mx_occ = occ[i] * i;
ans = i;
}
}
cout << ans << "\n";
}
vector<ll> prefix_function(vector<ll> &a) {
ll n = a.size();
vector<ll> lps(n);
lps[0] = 0;
for (ll i = 1; i < n; i++) {
ll j = lps[i - 1];
while (j > 0 && a[i] != a[j])
j = lps[j - 1];
if (a[i] == a[j]) lps[i] = j + 1;
else lps[i] = 0;
}
return lps;
}
void count_occurence(vector<ll> &a, ll lim) {
ll n = a.size();
vector<ll> lps = prefix_function(a);
vector<ll> occ(n + 1);
for (ll i = lim; i < n; i++)
occ[lps[i]]++;
for (ll i = n - 1; i > 0; i--)
occ[lps[i - 1]] += occ[i];
print(occ, lim);
}
int main()
{
FASTIO
ll T;
T = 1;
cin >> T;
for (ll cs = 1; cs <= T; cs++) {
ll n, m;
cin >> n >> m;
vector<ll> a(n + m + 1);
for (ll i = 0; i < n; i++)cin >> a[i];
a[n] = mod;
for (ll i = n + 1; i < n + m + 1; i++)cin >> a[i];
count_occurence(a, n);
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgRkFTVElPIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpLCBjaW4udGllKDApLCBjb3V0LnRpZSgwKTsKdHlwZWRlZiBsb25nIGxvbmcgbGw7CnVzaW5nIHBpaSA9IHBhaXI8bGwsIGxsPjsKY29uc3QgZG91YmxlIFBJID0gYWNvcygtMS4wKTsKY29uc3QgbGwgbW9kID0gMWU5ICsgNzsKCmNvbnN0IGxsIE4gPSAxMDAwMDA2OwoKCnZvaWQgcHJpbnQodmVjdG9yPGxsPiAmb2NjLCBsbCBsaW0pIHsKICAgIGxsIGFucyA9IDA7CiAgICBsbCBteF9vY2MgPSAwOwogICAgZm9yIChsbCBpID0gMTsgaSA8PSBsaW07IGkrKykgewogICAgICAgIGlmIChteF9vY2MgPD0gaSAqIG9jY1tpXSkgewogICAgICAgICAgICBteF9vY2MgPSBvY2NbaV0gKiBpOwogICAgICAgICAgICBhbnMgPSBpOwogICAgICAgIH0KICAgIH0KICAgIGNvdXQgPDwgYW5zIDw8ICJcbiI7Cn0KCnZlY3RvcjxsbD4gcHJlZml4X2Z1bmN0aW9uKHZlY3RvcjxsbD4gJmEpIHsKICAgIGxsIG4gPSBhLnNpemUoKTsKICAgIHZlY3RvcjxsbD4gbHBzKG4pOwogICAgbHBzWzBdID0gMDsKICAgIGZvciAobGwgaSA9IDE7IGkgPCBuOyBpKyspIHsKICAgICAgICBsbCBqID0gbHBzW2kgLSAxXTsKICAgICAgICB3aGlsZSAoaiA+IDAgJiYgYVtpXSAhPSBhW2pdKQogICAgICAgICAgICBqID0gbHBzW2ogLSAxXTsKICAgICAgICBpZiAoYVtpXSA9PSBhW2pdKSBscHNbaV0gPSBqICsgMTsKICAgICAgICBlbHNlIGxwc1tpXSA9IDA7CiAgICB9CiAgICByZXR1cm4gbHBzOwp9Cgp2b2lkIGNvdW50X29jY3VyZW5jZSh2ZWN0b3I8bGw+ICZhLCBsbCBsaW0pIHsKICAgIGxsIG4gPSBhLnNpemUoKTsKICAgIHZlY3RvcjxsbD4gbHBzID0gcHJlZml4X2Z1bmN0aW9uKGEpOwoKICAgIHZlY3RvcjxsbD4gb2NjKG4gKyAxKTsKICAgIGZvciAobGwgaSA9IGxpbTsgaSA8IG47IGkrKykKICAgICAgICBvY2NbbHBzW2ldXSsrOwogICAgZm9yIChsbCBpID0gbiAtIDE7IGkgPiAwOyBpLS0pCiAgICAgICAgb2NjW2xwc1tpIC0gMV1dICs9IG9jY1tpXTsKICAgIHByaW50KG9jYywgbGltKTsKfQoKaW50IG1haW4oKQp7CiAgICBGQVNUSU8KICAgIGxsIFQ7CiAgICBUID0gMTsKICAgIGNpbiA+PiBUOwogICAgZm9yIChsbCBjcyA9IDE7IGNzIDw9IFQ7IGNzKyspIHsKCiAgICAgICAgbGwgbiwgbTsKICAgICAgICBjaW4gPj4gbiA+PiBtOwogICAgICAgIHZlY3RvcjxsbD4gYShuICsgbSArIDEpOwogICAgICAgIGZvciAobGwgaSA9IDA7IGkgPCBuOyBpKyspY2luID4+IGFbaV07CiAgICAgICAgYVtuXSA9IG1vZDsKICAgICAgICBmb3IgKGxsIGkgPSBuICsgMTsgaSA8IG4gKyBtICsgMTsgaSsrKWNpbiA+PiBhW2ldOwogICAgICAgIGNvdW50X29jY3VyZW5jZShhLCBuKTsKICAgIH0KICAgIHJldHVybiAwOwp9