int nzd(int x,int y){
	
	while(x!=y){
		if(x>y){
			x=x-y;
		}else{
			y=y-x;
		}
	}
	return x;
	
}



#include<iostream>
#include<math.h>
using namespace std;

int main(){
	int t;
	
	
	
	
	
	long long int par[2];
	
	int ispis[6];
	
	cin>>t;
	
	for(int i=0;i<t;i++){
		
		long long int prvi,drugi;
		int eliminisi;
		eliminisi=0;
		long int n,m;
		
		cin>>n>>m>>prvi>>drugi;
		
		par[0]=abs(prvi-drugi);
		
		for(int j=2;j<n;j++){
			
			long long int treci;
			cin>>treci;
			par[1]=abs(prvi-treci);
			par[0]=nzd(par[0],par[1]);
			
			
		}
		
		
		for(int j=0;j<m;j++){
			
			int b;
			
			cin>>b;
			
			if(abs(prvi-b)%par[0]==0){
				eliminisi=1;
			}
			
			if(par[0]==1){
				eliminisi=1;
			}
			
			
		}
		
		if(eliminisi==1){
			ispis[i]=0;
		}else{
			ispis[i]=1;
		}
		
		
		
	}
	
	for(int i=0;i<t;i++){
		cout<<ispis[i]<<endl;
	}
	
	
	
	
	return 0;
}