#include <iostream>
#include <string>
#include <math.h>
	
using namespace std;
	
	int nzd(long long int a, long long int b){
		
		while(a!=b){
			
			if(a>b){
				
				a = a - b;
			}
			else{	
			
				b = b - a;
			}	
		}
		return a;	
	}
	
	int kr(bool a){
		
		if(a == true){
			
			return 0;
		}
		else{
			return 1;
		}	
	}
	
	
int main(int argc, char** argv) {
	bool jedan;
	int t;
	int kraj[5];
	long long int pmd;
	long long int dmt;
	long long int n,m,prvi,drugi,br;
	cin>>t;
	
	for(int i =0;i<t;i++){
		jedan = false;
		cin>>n>>m;
		cin>>prvi>>drugi;
		pmd = abs(prvi - drugi);
		
		for(int j = 2; j<n;j++){
			
			cin>>br;
			dmt = abs(prvi - br);	
				
			if(nzd(dmt,pmd)==1){
				jedan=true;		
			}
		}
		for(int k = 0; k <m;k++){
			
			cin>>br;
			
			if(abs(prvi-br) % nzd(dmt,pmd) == 0){
				
				jedan = true;	
			}	
		}
		
		kraj[i] = kr(jedan);
	}
	for(int i =0;i<t;i++){
		
		
		cout<<kraj[i]<<"\n";
		
	}
	
	
	
	return 0;
}