#include <stdio.h>
#include <stdlib.h>

long long int an[75000];
long long int bm[75000];

long long int Minimum(long long int* a,int n){

    long long int min,pom;
    int i,j;
    min = (a[0] - a[1]);
    if(min < 0){
        min = min * -1;
    }
    for(i=1;i<n-1;i++){
        for(j=i+1;j<n;j++){
            pom = (a[i] - a[j]);
            if(pom < 0){
                pom = (a[i] - a[j]) * -1;
            }
            if(pom < min){
                min = pom;
            }
        }
    }
    return min;
}
int main()
{
    int t;
    long long int n,m;
     int i,j,k,l,p;
   long long int pom,min;
   long long int pom2;
   long long int vrednost;
    scanf("%d",&t);
    int brojac;
    int x[t];

    for(i=0;i<t;i++){
        scanf("%lli",&n);
        scanf("%lli",&m);
         x[i] = 1;

        for(j=0;j<n;j++){
                scanf("%lli",&an[j]);
        }
        for(k=0;k<n-1;k++){
            for(l=k+1;k<n-1;k++){
                if(an[k] > an[l]){
                    pom = an[k];
                    an[k] = an[l];
                    an[l] = pom;
                }
            }
        }
       min = Minimum(an,n);
       vrednost = *an % min;
       for(pom2=0;pom2<n;pom2++){
            if(an[pom2]%min != vrednost){
                x[i] = 0;
                break;
            }
       }
        for(j=0;j<m;j++){
            scanf("%lli",&bm[j]);
        }
        for(brojac=0;brojac<m;brojac++){
            if(bm[brojac] % min == vrednost){
                x[i] = 0;
                break;
            }
        }




    }

    for(i=0;i<t;i++){
        printf("%i\n",x[i]);

    }

    return 0;
}