#include <iostream>
#include <algorithm>
using namespace std;

int nzd(int a,int b)
{
    while(b>0)
    {
        int pom=b;
        b=a%b;
        a=b;
    }
    return a;
}

int main()
{   int t,n,m,p,x;
    cin>>t;
    long long int a[75000],b[75000];
    for(int i=0;i<t;i++)
    {
        cin>>n>>m;
        for(int j=0;j<n;j++)
            cin>>a[j];
        for(int j=0;j<m;j++)
            cin>>b[j];
        sort(a,a+n);
        sort(b,b+m);
        x=a[1]-a[0];
        for(int j=2;j<n;j++)
        {
            x=nzd(x,a[j]-a[j-1]);
            if(x==1) break;
        }
        p=1;
        for(int j=0;j<m;j++)
        {
            if((b[j]-a[0])%x==0)
            {
                p=0;
                break;
            }
        }
        cout << p << endl;
    }
    return 0;
}