#include <iostream>
#include <vector>
#include <cmath>

using namespace std;

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

int main()
{
    int T;
    long N, M;
    long long X, a, min;
    cin>>T;

    vector<int> O(T, 1);
    vector<long long> A[5], B[5];

    for(int i=0; i<T; i++)
    {
        cin>>N>>M;

        for(int j=0; j<N; j++)
        {
            cin>>a;
            A[i].push_back(a);
        }

         for(int j=0; j<M; j++)
        {
            cin>>a;
            B[i].push_back(a);
        }
    }

    for(int i=0; i<T; i++)
    {
        N=A[i].size();
        M=B[i].size();

        min=A[i][0];
        X=abs(A[i][1]-A[i][0]);
        for(long j=2; j<N; j++)
        {
            X=eu(X, abs(A[i][j]-A[i][j-1]));
            if(X==1)
            {
                O[i]=0;
                break;
            }
            if(min>A[i][j])
                min=A[i][j]
        }

        if(X!=1)
        for(long j=0; j<M; j++)
        {
            if((B[i][j]-min)%X==0)
            {
                O[i]=0;
                break;
            }
        }
    }

    for(int i=0; i<T; i++)
        cout<<O[i]<<"\n";
    return 0;
}