#include <iostream>
#include <algorithm>

using namespace std;
int NZD(int a[],int N)
{	
	int b=a[1];
	for(int i=2;i<N-1;i++)
	{
		b=__gcd(a[i],b);
	}
	return b;
}
int main()
{
	int T;
	cin>>T;
	int resenje[T];
	
	for(int i =0;i<T;i++)
	{
		int N,M;
		cin>>N>>M;
		int A[N];
		int B[M];
		int min =INT_MAX;
		int min_index;
		
		for(int j=0;j<N;j++)
		{
			cin>>A[j];
			if(A[j]<min)
			{
				min=A[j];
				min_index=j;
			}
		}
		A[min_index]=A[0];
		A[0]=min;
		for(int j=0;j<M;j++)
		{
			cin>>B[j];
		}
		for(int j=0;j<N;j++)
		{
			A[j]-=min;
		}
		int X = NZD(A,N);
		min=min%X;
		resenje[i]=1;
		for(int j=0;j<M;j++)
		{
			if(B[j]%X==min)
			{
				resenje[i]=0;
				break;
			}
		}
		
	}
	
	
	for(int i =0;i<T;i++)
	{
		cout<<resenje[i]<<" ";
	}
}