#include<stdio.h>
#include<stdlib.h>
#include<limits.h>

main(){
	
	int t;
		
	scanf("%d",&t);
	
	int n[t],m[t],a[t][50000],b[t][50000],minRazlika = INT_MAX,minA = INT_MAX,maxB=INT_MIN,x,brojacRazlika=0,tacnost[t],potvrda=0;
			
	for(int i=0;i<t;i++){
				
		scanf("%d",&n[i]);		
		scanf("%d",&m[i]);			
		
		for(int j=0;j<n[i];j++){			
			scanf("%d",&a[i][j]);
		}
		
		for(int k=0;k<m[i];k++){			
			scanf("%d",&b[i][k]);
		}
	}
	
	for(int i=0;i<t;i++){
						
		
		for(int j=0;j<n[i];j++){
			
			if(abs(a[i][j+1] - a[i][j]) < minRazlika){
				minRazlika = abs(a[i][j+1] - a[i][j]);
			}
								
			if(j == n[i]-2){
				j=0;
				break;
			}												
		}
		
		for(int j=0;j<n[i];j++){
									
			if(a[i][j] < minA){
				minA = a[i][j];
			}			
															
		}
						
		for(int j=0;j<n[i];j++){
									
			if(abs(a[i][j+1] - a[i][j]) % minRazlika == 0){
				brojacRazlika++;											
			}																								
		}
		
		if(brojacRazlika == n[i]-1){
			x = minRazlika;
			brojacRazlika = 0;					
		}
		else{
			tacnost[i] = 0;
			break;
			
		}	
		
		for(int k=0;k<m[i];k++){
						
			if(b[i][k]>maxB){
				maxB=b[i][k];
			}										
		}				
									
		for(int k=0;k<m[i];k++){		
		    		    
			if((b[i][k]-minA)%x==0){
				potvrda++;										
		    }
		}																										
																					    												        																														
		if(potvrda > 0){
			tacnost[i] = 0;
		}
		else if(potvrda == 0){
			tacnost[i] = 1;
		}
						
		printf("%d\n",tacnost[i]);
				
	    minRazlika = INT_MAX;
	    minA = INT_MAX;
	    maxB=INT_MIN;
	    brojacRazlika=0;
	    potvrda=0;										
		}		 				
}