#include <bits/stdc++.h>
#define maks 75000
using namespace std;
typedef long long ll;
struct takmicar{
 ll n;
 ll m;
 ll a[maks];
 ll b[maks];

};
bool find_x(ll a[],ll b[],ll n,ll m)
{
    sort(a,a+n);
    sort(b,b+m);
    ll  x=a[1]-a[0];
    for(ll i=1;i<n-1;i++)
    {
        if(max(a[i+1]-a[i],x)%min(a[i+1]-a[i],x)==0)
            x=min(a[i+1]-a[i],x);
        else return false;
    }
    for(ll i=0;i<m;i++)
    {
        if(abs(b[i]-a[0])%x==0) return false;
    }
    return true;
}

int main()
{
    int t;
    cin >> t;
    takmicar niz[t];
    for(ll j=0;j<t;j++)
    {
        cin >>niz[j].n >>niz[j].m;
        for(ll i=0;i<niz[j].n;i++) cin>>niz[j].a[i];
        for(ll i=0;i<niz[j].m;i++) cin>>niz[j].b[i];
    }
    bool mark[t]={false};
    for(ll j=0;j<t;j++)
    {
        mark[j]=find_x(niz[j].a , niz[j].b, niz[j].n , niz[j].m);
    }
    for(ll j=0;j<t;j++)
        if(mark[j]) cout << 1 << '\n';
        else cout << 0 << '\n';
    return 0;
}