#include<iostream>
#include<stdlib.h>
#include<algorithm>


using namespace std;

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

int main()
{
	long long int t,n,m,i,j,k,x,x1;
	bool res,resenje[6];
	cin>>t;
    for(int w=0;w<t;w++)
    {
    cin>>n>>m;
	long long int niz[n],niz1[m];
	cin>>niz[0]>>niz[1];
	if(n==2)
	{
		x=abs(niz[1]-niz[0]);
	}
	if(n>2)
	{
		cin>>niz[2];
		x1=abs(niz[0]-niz[2]);
		x=nzd(x,x1);
   if(n>3)
   {
	for(i=3;i<n;i++)	
	{
		cin>>niz[i];
		x1=abs(niz[0]-niz[i]);
		x=nzd(x,x1);
	}
    }
	}
	res=1;
    if(x==1)
    {
    	res=0;
    }
    for(j=0;j<n;j++)	
	{
		cin>>niz1[j];
			x1=abs(niz[0]-niz1[j]);
			if(x1%x==0)
			{
				res=0;
			}
	}
    resenje[w]=res;
	}  	
	for(int h=0;h<t;h++)
	{
		cout<<resenje[h]<<endl;
	}
	}