#include <bits/stdc++.h>
#define pi 3.14159
#define hpt(x,y) sqrt(x*x+y*y)

using namespace std;
typedef long long ll;

const int p=29;
const int MOD=1e9+9;

ll a[75006], b[75006];
int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);

    ll t, n, m, razlika, minrazlika, x=-1, ostatak;
    bool deljiv;
    cin >> t;
    for(ll p=0;p<t;p++){
        x=-1;
        cin >> n >> m;
        for(ll i=0;i<n;i++){
            cin >> a[i];
        }
        for(ll i=0;i<m;i++){
            cin >> b[i];
        }
        sort(a,a+n);
        minrazlika=a[1]-a[0];
        for(ll i=1;i<n;i++){
            if(a[i]-a[i-1]<minrazlika){
                minrazlika=a[i]-a[i-1];
            }
        }
        //cout << minrazlika << endl;
        for(ll i=minrazlika;i>1;i--){
            deljiv=true;
            //cout << i << "  ";
            if(minrazlika%i!=0){
                //cout << "ne moze";
                continue;
            }
            ostatak=a[0]%i;
            //cout << ostatak << " ";
            for(ll j=0;j<n;j++){
                //cout << a[j]%i << " ";
                if(a[j]%i!=ostatak){
                    deljiv=false;
                    break;
                }
            }
            //cout << endl;
            if(deljiv=true){
                x=i;
                break;
            }
        }
        //cout << x << " je x" << endl;
        if(x==-1){
            //cout << "najebo si";
            cout << "0" << endl;
            continue;
        }

        deljiv=false;
        for(ll i=0;i<m;i++){
            //cout << b[i]%x << " ";
            if(b[i]%x==ostatak){
                deljiv=true;
                break;
            }
        }
        //cout << endl;
        if(deljiv==true){
            cout << "0" << endl;
            continue;
        }
        cout << "1" << endl;
    }

    return 0;
}