#include <bits/stdc++.h>

using namespace std;

long long int nzd(long long int a,long long int b)
{
    if(a<b) {
        long long int m=a;
        a=b;
        b=m;
    }
    long long int p;
    while (b!=0) {
    p=a%b;
    a=b;
    b=p;
  }
  return a;
}
int t;
long int n[6],m[6];
long long int validne[5][75002];
long long int nevalidne[5][75002];

int main()
{
    scanf("%d",&t);
    for(int i=0;i<t;i++)
    {
        scanf("%d%d",&n[i],&m[i]);
        for(long int j=0;j<n[i];j++)
            scanf("%lld",&validne[i][j]);
        for(long int j=0;j<m[i];j++)
            scanf("%lld",&nevalidne[i][j]);
    }

    for(int i=0;i<t;i++)
    {
        int iks=0;
        long long int trenutni_najmanji=abs(validne[i][0]-validne[i][1]);
        for(long int j=1;j<n[i]-1;j++)
        {
            trenutni_najmanji=nzd(trenutni_najmanji,abs(validne[i][j]-validne[i][j+1]));
            if(trenutni_najmanji==1) break;
        }
        if(trenutni_najmanji==1) {printf("0\n");continue;}
        for(long int j=0;j<m[i];j++)
        {
            if(abs(validne[i][0]-nevalidne[i][j])%trenutni_najmanji==0) {iks=1;printf("0\n");break;}
        }
        if(iks==0) printf("1\n");
    }

    return 0;
}