#include <bits/stdc++.h>

using namespace std;

long long nzd(long long a, long long b)
{
    if (a == 0)
        return b;
    return nzd(b % a, a);
}

long long viseNZD(vector<long long> niz, int n)
{
    long long result = niz[0];
    for (int i = 1; i < n; i++)
    {
        result = nzd(niz[i], result);

        if(result == 1)
        {
           return 1;
        }
    }
    return result;
}

int main()
{
    ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0);
    int t;
    cin >> t;

    for(int i = 0; i < t; i++){
        int p, n;
        cin >> p >> n;

        vector<long long> prosle (p - 1);

        long long prethodni;
        long long prvi;
        long long sada;
        for(int j = 0; j < p; j++){
            if(j == 0){
                cin >> prethodni;
                prvi = prethodni;
            }
            else{
                cin >> sada;
                prosle[j - 1] = abs(sada - prethodni);
                prethodni = sada;
            }
        }
        long long najveciDelilac = viseNZD(prosle, p - 1);
        long long ostatak = (prvi % najveciDelilac);

        int resenje = 1;
        for(int k = 0; k < n; k++){
            long long komedija;
            cin >> komedija;
            if(komedija % najveciDelilac == ostatak){
                resenje = 0;
            }
        }
        cout << resenje << "\n";
    }
}