#include <bits/stdc++.h>

using namespace std;

int a[75000];
int b[75000];

int main()
{
    long long x, razlikaA, gcdA, razlikaAB;
    int t, n, m;
    bool istaRazlika;

    cin>>t;

    for(int i = 0; i < t; i++)
    {
        cin>>n>>m;
        istaRazlika = false;

        for(int n1 = 0; n1 < n; n1++) cin>>a[n1];
        sort(a, a+n);

        if(n == 2) x = a[1] - a[0];
        else if(n == 3)
        {
            gcdA = a[1] - a[0];
            razlikaA = a[2] - a[1];
            gcdA = __gcd(gcdA, razlikaA);
            if(gcdA == 1){istaRazlika = true;}

            x = gcdA;
        }
        else
        {
            gcdA = a[1] - a[0];
            razlikaA = a[2] - a[1];
            for(int n1 = 3; n1 <= n; n1++)
            {
                gcdA = __gcd(gcdA, razlikaA);
                if(gcdA == 1) break;

                razlikaA = a[n1] - a[n1 - 1];
            }
            if(gcdA == 1){istaRazlika = true;}

            x = gcdA;
        }

        for(int m1 = 0; m1 < m; m1++) cin>>b[m1];
        sort(b, b+n);

        if(istaRazlika) {cout<<0<<endl; continue;}

        for(int n1 = 0; n1 < n; n1++)
        {
            for(int m1 = 0; m1 < m; m1++)
            {
                razlikaAB = abs(a[n1] - b[m1]);
                if(razlikaAB%x == 0)
                {
                    istaRazlika = true;
                    break;
                }
            }

            if(istaRazlika) break;
        }

        if(istaRazlika) cout<<0<<endl;
        else cout<<1<<endl;
    }

    return 0;
}