#include <iostream>
#include <cmath>
using namespace std;
int nzd(int k,int l){
int r,e;
    if(l>k){
        e=l;
        l=k;
        k=e;
    }
    r=k%l;

    while(r>0){
        k=l;
        l=r;
        r=k%l;
    }
    return l;
}
int main()
{
    int T,M,N,X,q,A[75000],B[75000],i,j,p,C[75000],ima,Rezultati[5];
    cin>>T;
    for(i=1;i<=T;i++){
        cin>>N>>M;
        ima=0;
        for(j=0;j<N;j++){
            cin>>A[j];}
        for(j=0;j<M;j++){
            cin>>B[j];
            }
        for(j=0;j<N-1;j++){
            C[j]=abs(A[j+1]-A[j]);

        }
        X=C[0];
        for(j=0;j<N-1;j++){

            p=C[j];
            X=nzd(X,p);

        }

        if(X>1){
            ima=1;
            q=A[0]%X;

            for(j=0;j<M;j++){
                if((B[j]%X)==q)
                        ima=0;
            }

                }
        Rezultati[i]=ima;
        }
        for(i=1;i<=T;i++)
            cout<<Rezultati[i]<<"\n";
        return 0;

}