#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;
}