#include <iostream>
#include <cmath>
#include <algorithm>
using namespace std;
long long NZD(long long a,long long b)
{
	while(b){
		a%=b;
		swap(a,b);
	}
	return a;
	
}
int main()
{
	int t,n,m,i=0,p;
	long long r;
	cin>>t;
	while(t--)
	{
		p=1;
		cin>>n>>m;
		long long x[n],y[m];
		for(i=0;i<n;i++)
		cin>>x[i];
        sort(x,x+n);
		for(i=0;i<m;i++)
	    cin>>y[i];
		r=abs(x[1]-x[0]);
	    for(i=2;i<n;i++)
	    r=NZD(r,abs(x[i]-x[i-1]));
	    for(i=0;i<m;i++)
	    if(abs(y[i]-x[0])%r==0)
	    p=0;
	    cout<<p<<endl;
	}
	return 0;
}