#include <bits/stdc++.h>

using namespace std;

const int maxN = 76000;

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

long long a[maxN],b[maxN];
int ans[10];
int query()
{
    long long n,m;
    scanf("%lld %lld",&n,&m);
    for(int i=1;i<=n;i++)
        scanf("%lld",a+i);
    for(int i=1;i<=m;i++)
        scanf("%lld",b+i);
    sort(a+1,a+1+n);
    long long GCDA=a[2]-a[1];
    for(int i=3;i<=n;i++)
        {
            GCDA=gcd(GCDA,a[i]-a[i-1]);
            if(GCDA==1)
                break;
        }
    int x=1;
    long long mod=a[1]%GCDA;
    for(int i=1;i<=m;i++)
    {
        if(b[i]%GCDA == mod)
        {
            x=0;
            break;
        }
    }
    return x;

}

int main()
{
    int t;
    scanf("%d",&t);
    for(int i=1;i<=t;i++)
        ans[i]=query();
    for(int i=1;i<=t;i++)
        printf("%d \n",ans[i]);
}