#include <iostream>
#include <math.h>

using namespace std;

int main(int argc, char** argv) {
	
	int t;
	cin>>t;
	int n, m, rez[t];
	long long p, p1, p2, nzd;
	for(int i=0;i<t;i++)
	{
		rez[i]=1;
		
		cin>>n>>m;
		long long a[n],b[m];
		for(int j=0;j<n;j++) //unos a-ova
			cin>>a[j];
		for(int j=n-1;j>0;j--) //menjanje a-ova
		a[j]=abs(a[j]-a[j-1]);
		
		for(int j=0;j<m;j++) //unos b-ova
			cin>>b[j];
	
		if(n==2) nzd=a[1];
		else
		{
			if(a[1]>a[2]) //odredjivanje manjeg
			{
				p=a[2];
				a[2]=a[1];
				a[1]=p;
			}
			
			int ind=1;
			while(ind==1&&a[2]%a[1]!=1) //nalazenje nzd za prve dve razlike
			{
				p=a[2]%a[1];
				if(p==0) ind=0;
				else
				{
					a[2]=a[1];
					a[1]=p;
				}
			}
			nzd=a[1];
			
			for(int j=3;j<n;j++) //proveravanje nzd
			{
				p1=a[j]; p2=nzd; ind=1;
				while(ind==1&&p1%p2!=1) //nalazenje nzd
				{
					p=p1%p2;
					if(p==0) ind=0;
					else
					{
						p1=p2;
						p2=p;
					}
				}
				nzd=p2;
			}
		}
		
		for(int j=0;j<m;j++)
		{
			if(abs(b[j]-a[0])%nzd==0) {rez[i]=0; j=m;}
		}	
	}
	for(int i=0;i<t;i++)
	cout<<rez[i]<<endl;
	return 0;
}