#include<stdio.h>
#include<math.h>

long long int NZD(long long int a, long long int b)
{
	if(a%b==0)
	return b;
	
	return(b,a%b);
}

main()
{
	long long int T,N[6],M[6],A[6][75000],B[6][75000],i,j,k,br,min;
	scanf("%lld",&T);
	
	for(i=0;i<T;i++)
	{
		scanf("%lld%lld",&N[i],&M[i]);
		for(j=0;j<N[i];j++)
		scanf("%lld",&A[i][j]);
		
		for(j=0;j<M[i];j++)
		scanf("%lld",&B[i][j]);
	}
	
	
	for(i=0;i<T;i++)
	{
		min=A[i][0];
		for(j=1;j<N[i];j++)
		if(A[i][j]<min)
		min=A[i][j];
		
		br=0;
		k=abs(A[i][0]-A[i][1]);
		for(j=1;j<N[i]-1;j++)
		k=NZD(k,abs(A[i][j]-A[i][j+1]));
		
		for(j=0;j<M[i];j++)
		if((B[i][j]-min)%k==0)
		br++;
		
		printf("%d",k);
		
		if(br>0)
		printf("0\n");
		
		if(br==0)
		printf("1\n");
	}
}